tts-voice-creator-clone-and.../tests/test_pronunciations.py
mARTin-B78 b1c0197652
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
Release v1.53.2
2026-09-24 07:44:16 +02:00

41 lines
1.6 KiB
Python

import unittest
from core.pronunciations import (
expand_abbreviations,
normalize_ocr_text,
prepare_text_for_tts,
remove_linebreak_hyphens,
)
class PronunciationTests(unittest.TestCase):
def test_fuses_printed_line_break_but_keeps_real_compound(self):
self.assertEqual(remove_linebreak_hyphens("program-\nmieren mit einem KI-Modell"),
"programmieren mit einem KI-Modell")
self.assertEqual(remove_linebreak_hyphens("Hardware- und Software"),
"Hardware- und Software")
self.assertEqual(remove_linebreak_hyphens("einge\u00adtrichtert"), "eingetrichtert")
def test_existing_flattened_ocr_layouts_are_repaired_too(self):
self.assertEqual(remove_linebreak_hyphens("eingetrich- tert"), "eingetrichtert")
def test_german_umlaut_and_acronyms_are_prepared_for_speech(self):
spoken = prepare_text_for_tts(
"KI wird jahrlich wichtiger und APIs sind naturlich verfügbar.", "de")
self.assertIn("Künstliche Intelligenz", spoken)
self.assertIn("jährlich", spoken)
self.assertIn("Programmierschnittstellen", spoken)
self.assertIn("natürlich", spoken)
def test_english_acronyms_use_english_expansions(self):
self.assertEqual(expand_abbreviations("AI uses an API.", "en"),
"artificial intelligence uses an application programming interface.")
def test_unknown_technical_words_and_names_stay_unchanged(self):
text = "OpenAI und PyMuPDF bleiben unverändert."
self.assertEqual(normalize_ocr_text(text, "de"), text)
if __name__ == "__main__":
unittest.main()