Files
Flaro/server/tests/Flaro.Core.Tests/BenennungTests.cs
T
ScarriffleandClaude Opus 5 228c318ad2 Die Medientabelle spricht durchgehend dieselbe Sprache
Die Tonzeile nahm bereits die Formulierung vom Server, die Videozeile baute
ihren Text weiter selbst — "240p (H264)" neben "AAC · Mono", zwei
Schreibweisen in derselben Tabelle untereinander. Die gemessene Auflösung
wandert in den Tooltip, wo sie hingehört: 1040 ist keine Stufe, sondern ein
beschnittenes Bild.

Dazu: ein Spurtitel, der nur die Sprache wiederholt, fällt weg. "Deutsch ·
AAC · Mono · ‚Deutsch'" sagt dasselbe zweimal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-04 13:19:21 +02:00

105 lines
4.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Flaro.Core.Media;
namespace Flaro.Core.Tests;
/// <summary>Aus ffprobe-Rohwerten wird etwas, das man vorlesen kann.</summary>
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));
/// <summary>„und" heisst unbekannt und darf nicht wie eine Angabe aussehen.</summary>
[TestCase("und")]
[TestCase("unk")]
[TestCase("")]
[TestCase(null)]
public void Unbekanntes_bleibt_leer(string? kuerzel) =>
Assert.That(Benennung.Sprache(kuerzel), Is.Null);
/// <summary>Ein unbekanntes Kürzel bleibt stehen — es ist immer noch eine Auskunft.</summary>
[Test]
public void Fremdes_bleibt_stehen() =>
Assert.That(Benennung.Sprache("xyz"), Is.EqualTo("XYZ"));
/// <summary>Sechs Kanäle sind 5.1 — „6.0" gibt es nicht.</summary>
[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));
/// <summary>Ein beschnittenes Breitbild misst 1040 Zeilen und ist trotzdem 1080p.</summary>
[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));
/// <summary>Der Fall aus der Oberfläche, Wort für Wort.</summary>
[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"));
}
/// <summary>„SoundHandler" ist kein Name, sondern ein Rest aus dem Umpacken.</summary>
[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"));
}
/// <summary>Nachtrag: Titel, die nichts hinzufügen.</summary>
public class SpurtitelTests
{
/// <summary>„Deutsch · AAC · Mono · ‚Deutsch'" sagt dasselbe zweimal.</summary>
[Test]
public void Ein_Titel_der_nur_die_Sprache_wiederholt_faellt_weg()
{
Assert.That(Benennung.Tonspur("deu", "aac", 1, "Deutsch"),
Is.EqualTo("Deutsch · AAC · Mono"));
Assert.That(Benennung.Tonspur("deu", "aac", 1, "deu"),
Is.EqualTo("Deutsch · AAC · Mono"));
}
[Test]
public void Ein_Titel_der_etwas_sagt_bleibt() =>
Assert.That(Benennung.Tonspur("deu", "aac", 1, "Audiodeskription"),
Is.EqualTo("Deutsch · AAC · Mono · „Audiodeskription“"));
}