FLACReader.Position was returning nonsense (thanks, Ivailo)

This commit is contained in:
chudov
2011-10-23 19:36:55 +00:00
parent 1986e28240
commit 351e6e6762
5 changed files with 36 additions and 16 deletions

View File

@@ -102,7 +102,15 @@ namespace CUETools.TestCodecs
CollectionAssert.AreEqual(testSamples2, target.Samples, "CUETools.Codecs.AudioBuffer.Samples was not set correctly.");
}
}
public static void AreEqual(AudioBuffer buff1, AudioBuffer buff2)
{
var bytes1 = new byte[buff1.ByteLength];
var bytes2 = new byte[buff2.ByteLength];
Array.Copy(buff1.Bytes, bytes1, buff1.ByteLength);
Array.Copy(buff2.Bytes, bytes2, buff2.ByteLength);
CollectionAssert.AreEqual(bytes1, bytes2);
}
}
/// <summary>

View File

@@ -55,16 +55,22 @@ namespace CUETools.TestCodecs
var r = new FLACReader("test.flac", null);
var buff1 = new AudioBuffer(r, 16536);
var buff2 = new AudioBuffer(r, 16536);
Assert.AreEqual(0, r.Position);
r.Read(buff1, 7777);
Assert.AreEqual(7777, r.Position);
r.Position = 0;
Assert.AreEqual(0, r.Position);
r.Read(buff2, 7777);
Assert.AreEqual(7777, r.Position);
AudioBufferTest.AreEqual(buff1, buff2);
r.Read(buff1, 7777);
Assert.AreEqual(7777+7777, r.Position);
r.Position = 7777;
Assert.AreEqual(7777, r.Position);
r.Read(buff2, 7777);
Assert.AreEqual(7777+7777, r.Position);
AudioBufferTest.AreEqual(buff1, buff2);
r.Close();
Assert.AreEqual(buff1.ByteLength, buff2.ByteLength);
var bytes1 = new byte[buff1.ByteLength];
var bytes2 = new byte[buff2.ByteLength];
Array.Copy(buff1.Bytes, bytes1, buff1.ByteLength);
Array.Copy(buff2.Bytes, bytes2, buff2.ByteLength);
CollectionAssert.AreEqual(bytes1, bytes2);
}
}
}

View File

@@ -156,16 +156,22 @@ namespace CUETools.TestCodecs
var r = new FlakeReader("test.flac", null);
var buff1 = new AudioBuffer(r, 16536);
var buff2 = new AudioBuffer(r, 16536);
Assert.AreEqual(0, r.Position);
r.Read(buff1, 7777);
Assert.AreEqual(7777, r.Position);
r.Position = 0;
Assert.AreEqual(0, r.Position);
r.Read(buff2, 7777);
Assert.AreEqual(7777, r.Position);
AudioBufferTest.AreEqual(buff1, buff2);
r.Read(buff1, 7777);
Assert.AreEqual(7777 + 7777, r.Position);
r.Position = 7777;
Assert.AreEqual(7777, r.Position);
r.Read(buff2, 7777);
Assert.AreEqual(7777 + 7777, r.Position);
AudioBufferTest.AreEqual(buff1, buff2);
r.Close();
Assert.AreEqual(buff1.ByteLength, buff2.ByteLength);
var bytes1 = new byte[buff1.ByteLength];
var bytes2 = new byte[buff2.ByteLength];
Array.Copy(buff1.Bytes, bytes1, buff1.ByteLength);
Array.Copy(buff2.Bytes, bytes2, buff2.ByteLength);
CollectionAssert.AreEqual(bytes1, bytes2);
}
}
}