#if(DEBUG) using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; namespace FileFlows.AudioNodes.Tests; [TestClass] public class ConvertTests : AudioTestBase { [TestMethod] public void Convert_FlacToAac() { foreach (var codec in new[] { "MP3", "aac"} ) { foreach (int quality in new[] { 0, 10 }) { ConvertAudio node = new(); node.Codec = codec; node.Bitrate = quality + 10; node.HighEfficiency = true; var args = GetAudioNodeParameters(AudioFlac); var af = new AudioFile(); Assert.IsTrue(af.PreExecute(args)); af.Execute(args); // need to read the Audio info and set it Assert.IsTrue(node.PreExecute(args)); int output = node.Execute(args); Assert.AreEqual(1, output); var fi = new FileInfo(args.WorkingFile); File.Move(args.WorkingFile, Path.Combine(fi.DirectoryName, quality + fi.Extension), true); } } } [TestMethod] public void Convert_FlacToMp3() { var args = GetAudioNodeParameters(AudioFlac); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertToMP3 node = new(); node.PreExecute(args); int output = node.Execute(args); Assert.AreEqual(1, output); } [TestMethod] public void Convert_Mp3ToWAV() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertToWAV node = new(); node.PreExecute(args); int output = node.Execute(args); Assert.AreEqual(1, output); } [TestMethod] public void Convert_Mp3ToOgg() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it var ele = new ConvertAudio(); ele.Codec = "ogg"; ele.Bitrate = 320; ele.PreExecute(args); int output = ele.Execute(args); Assert.AreEqual(1, output); } [TestMethod] public void Convert_AacHighEfficient() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertToAAC ele = new(); ele.HighEfficiency = true; ele.Bitrate = 192; ele.PreExecute(args); int output = ele.Execute(args); Assert.AreEqual(1, output); } [TestMethod] public void Convert_Mp3ToMp3_Bitrate() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertToMP3 ele = new(); ele.PreExecute(args); ele.Bitrate = 64; int output = ele.Execute(args); TestContext.WriteLine(Logger.ToString()); Assert.AreEqual(1, output); } [TestMethod] public void Convert_Mp3ToMp3_Bitrate_Variable() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertToMP3 ele = new(); ele.PreExecute(args); ele.Bitrate = 3; int output = ele.Execute(args); TestContext.WriteLine(Logger.ToString()); Assert.AreEqual(1, output); } [TestMethod] public void Convert_Mp3_AlreadyMp3() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertAudio node = new(); node.SkipIfCodecMatches = true; node.Codec = "mp3"; node.Bitrate = 192; int output = node.Execute(args); Assert.AreEqual(2, output); } [TestMethod] public void Convert_TwoPass() { var args = GetAudioNodeParameters(); var af = new AudioFile(); af.PreExecute(args); af.Execute(args); // need to read the Audio info and set it ConvertToAAC node = new(); node.Normalize = true; node.PreExecute(args); int output = node.Execute(args); Assert.AreEqual(1, output); } } #endif