using Flaro.Core.Media; namespace Flaro.Core.Tests; /// Aus ffprobe-Rohwerten wird etwas, das man vorlesen kann. public class BenennungTests { [TestCase("deu", "Deutsch")] [TestCase("ger", "Deutsch")] [TestCase("de", "Deutsch")] [TestCase("eng", "Englisch")] [TestCase("fr", "Französisch")] public void Sprachkuerzel_werden_Klarnamen(string kuerzel, string erwartet) => Assert.That(Benennung.Sprache(kuerzel), Is.EqualTo(erwartet)); /// „und" heisst unbekannt und darf nicht wie eine Angabe aussehen. [TestCase("und")] [TestCase("unk")] [TestCase("")] [TestCase(null)] public void Unbekanntes_bleibt_leer(string? kuerzel) => Assert.That(Benennung.Sprache(kuerzel), Is.Null); /// Ein unbekanntes Kürzel bleibt stehen — es ist immer noch eine Auskunft. [Test] public void Fremdes_bleibt_stehen() => Assert.That(Benennung.Sprache("xyz"), Is.EqualTo("XYZ")); /// Sechs Kanäle sind 5.1 — „6.0" gibt es nicht. [TestCase(1, "Mono")] [TestCase(2, "Stereo")] [TestCase(6, "5.1")] [TestCase(8, "7.1")] [TestCase(null, null)] public void Kanalzahlen_bekommen_die_uebliche_Schreibweise(int? kanaele, string? erwartet) => Assert.That(Benennung.Kanaele(kanaele), Is.EqualTo(erwartet)); [TestCase("eac3", "Dolby Digital Plus")] [TestCase("h264", "H.264")] [TestCase("hevc", "H.265")] [TestCase("mov_text", "Text")] [TestCase("exotisch", "EXOTISCH")] public void Codecs_bekommen_ihren_geläufigen_Namen(string kuerzel, string erwartet) => Assert.That(Benennung.Codec(kuerzel), Is.EqualTo(erwartet)); /// Ein beschnittenes Breitbild misst 1040 Zeilen und ist trotzdem 1080p. [TestCase(2160, "2160p")] [TestCase(1080, "1080p")] [TestCase(1040, "1080p")] [TestCase(720, "720p")] public void Bildhoehen_werden_zu_Stufen(int hoehe, string erwartet) => Assert.That(Benennung.Aufloesung(hoehe), Is.EqualTo(erwartet)); /// Der Fall aus der Oberfläche, Wort für Wort. [Test] public void Die_ganze_Tonspur() { Assert.That(Benennung.Tonspur("deu", "eac3", 6, null), Is.EqualTo("Deutsch · Dolby Digital Plus · 5.1")); Assert.That(Benennung.Tonspur("eng", "aac", 2, null), Is.EqualTo("Englisch · AAC · Stereo")); } /// „SoundHandler" ist kein Name, sondern ein Rest aus dem Umpacken. [Test] public void Nichtssagende_Titel_fallen_weg() => Assert.That(Benennung.Tonspur("deu", "aac", 2, "SoundHandler"), Is.EqualTo("Deutsch · AAC · Stereo")); [Test] public void Ein_echter_Spurtitel_bleibt() => Assert.That(Benennung.Tonspur("deu", "aac", 2, "Audiodeskription"), Does.Contain("Audiodeskription")); [Test] public void Untertitel_zeigen_ihre_Besonderheit() { Assert.That(Benennung.Untertitelspur("deu", false, false), Is.EqualTo("Deutsch")); Assert.That(Benennung.Untertitelspur("deu", true, false), Is.EqualTo("Deutsch (erzwungen)")); } [Test] public void Die_ganze_Bildspur() => Assert.That(Benennung.Bildspur("h264", 1040), Is.EqualTo("1080p · H.264")); }