2011-10-22 23:53:33 +00:00
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using CUETools.Codecs;
|
|
|
|
|
|
using CUETools.Codecs.FLAC;
|
|
|
|
|
|
|
|
|
|
|
|
namespace CUETools.TestCodecs
|
|
|
|
|
|
{
|
|
|
|
|
|
[TestClass()]
|
|
|
|
|
|
public class FlacWriterTest
|
|
|
|
|
|
{
|
|
|
|
|
|
private TestContext testContextInstance;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///Gets or sets the test context which provides
|
|
|
|
|
|
///information about and functionality for the current test run.
|
|
|
|
|
|
///</summary>
|
|
|
|
|
|
public TestContext TestContext
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return testContextInstance;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
testContextInstance = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
///A test for FlacWriter (string, int, int, int, Stream)
|
|
|
|
|
|
///</summary>
|
|
|
|
|
|
[TestMethod()]
|
|
|
|
|
|
public void ConstructorTest()
|
|
|
|
|
|
{
|
|
|
|
|
|
AudioBuffer buff = WAVReader.ReadAllSamples("test.wav", null);
|
|
|
|
|
|
FLACWriter target;
|
|
|
|
|
|
|
2013-04-07 20:41:58 -04:00
|
|
|
|
target = new FLACWriter("flacwriter2.flac", new FLACWriterSettings() { PCM = buff.PCM });
|
2013-04-04 22:07:15 -04:00
|
|
|
|
target.Settings.Padding = 1;
|
|
|
|
|
|
target.Settings.BlockSize = 32;
|
2011-10-22 23:53:33 +00:00
|
|
|
|
//target.Vendor = "CUETools";
|
|
|
|
|
|
//target.CreationTime = DateTime.Parse("15 Aug 1976");
|
|
|
|
|
|
target.FinalSampleCount = buff.Length;
|
|
|
|
|
|
target.Write(buff);
|
|
|
|
|
|
target.Close();
|
|
|
|
|
|
CollectionAssert.AreEqual(File.ReadAllBytes("flacwriter1.flac"), File.ReadAllBytes("flacwriter2.flac"), "flacwriter2.flac doesn't match.");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod()]
|
|
|
|
|
|
public void SeekTest()
|
|
|
|
|
|
{
|
|
|
|
|
|
var r = new FLACReader("test.flac", null);
|
|
|
|
|
|
var buff1 = new AudioBuffer(r, 16536);
|
|
|
|
|
|
var buff2 = new AudioBuffer(r, 16536);
|
2011-10-23 19:36:55 +00:00
|
|
|
|
Assert.AreEqual(0, r.Position);
|
2011-10-22 23:53:33 +00:00
|
|
|
|
r.Read(buff1, 7777);
|
2011-10-23 19:36:55 +00:00
|
|
|
|
Assert.AreEqual(7777, r.Position);
|
2011-10-22 23:53:33 +00:00
|
|
|
|
r.Position = 0;
|
2011-10-23 19:36:55 +00:00
|
|
|
|
Assert.AreEqual(0, r.Position);
|
2011-10-22 23:53:33 +00:00
|
|
|
|
r.Read(buff2, 7777);
|
2011-10-23 19:36:55 +00:00
|
|
|
|
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);
|
2011-10-22 23:53:33 +00:00
|
|
|
|
r.Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|