Files
llmrouter/test/sprechtext.test.ts
eltonandClaude Fable 5.1 dfc85a4829 llmrouter: Sprechtext-Normalisierung vor TTS — Postleitzahl als Ziffernfolge mit Pause
"Bergstraße 7, 83646 Bad Tölz" -> "Bergstraße 7; Postleitzahl 8 3 6 4 6, Bad Tölz"
(Andreas 2026-09-06, Variante 4 nach Hörtest mit Fish S2 Pro). Betraege, Daten,
Einheiten und Bindestrich-Nummern bleiben unberuehrt; 10 Tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 08:28:19 +02:00

44 lines
1.6 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { sprechtextNormalisieren as n } from "../src/sprechtext.ts";
describe("Postleitzahl", () => {
test("Hausnummer, Komma, PLZ, Ort", () => {
expect(n("an die 42i GmbH, Bergstraße 7, 83646 Bad Tölz.")).toBe("an die 42i GmbH, Bergstraße 7; Postleitzahl 8 3 6 4 6, Bad Tölz.");
});
test("ohne Komma", () => {
expect(n("Bergstraße 7 83646 Bad Tölz")).toBe("Bergstraße 7; Postleitzahl 8 3 6 4 6, Bad Tölz");
});
test("mehrteiliger Ortsname", () => {
expect(n("Adresse: 60311 Frankfurt am Main, Zeil 1")).toBe("Adresse: Postleitzahl 6 0 3 1 1, Frankfurt am Main, Zeil 1");
});
test("Ort mit Bindestrich", () => {
expect(n("in 40210 Düsseldorf-Stadtmitte")).toBe("in; Postleitzahl 4 0 2 1 0, Düsseldorf-Stadtmitte");
});
});
describe("bleibt unberuehrt", () => {
test("Betrag mit Tausenderpunkt", () => {
const t = "Ihre Rechnung über 1.248,50 Euro ist offen.";
expect(n(t)).toBe(t);
});
test("fuenfstelliger Betrag mit Euro", () => {
const t = "Der Kaufpreis beträgt 83646 Euro im Jahr 2026.";
expect(n(t)).toBe(t);
});
test("Datum und Jahreszahl", () => {
const t = "vom 14. August 2026 bis zum 30. September 2026";
expect(n(t)).toBe(t);
});
test("PLZ am Satzanfang", () => {
expect(n("83646 Bad Tölz ist der Sitz.")).toBe("Postleitzahl 8 3 6 4 6, Bad Tölz ist der Sitz.");
});
test("Kundennummer ohne Ortsnamen", () => {
const t = "Kundennummer 48213 bitte bereithalten.";
expect(n(t)).toBe(t);
});
test("Teil einer laengeren Zahl", () => {
const t = "Rechnungsnummer 2026-83646 Berlin";
expect(n(t)).toBe(t);
});
});