import pytest from whisper.normalizers import EnglishTextNormalizer from whisper.normalizers.english import ( EnglishNumberNormalizer, EnglishSpellingNormalizer, ) @pytest.mark.parametrize("std", [EnglishNumberNormalizer(), EnglishTextNormalizer()]) def test_number_normalizer(std): assert std("two") == "2" assert std("thirty one") == "31" assert std("five twenty four") == "524" assert std("nineteen ninety nine") == "1999" assert std("twenty nineteen") == "2019" assert std("two point five million") == "2500000" assert std("four point two billions") == "4200000000s" assert std("200 thousand") == "200000" assert std("200 thousand dollars") == "$200000" assert std("$20 million") == "$20000000" assert std("€52.4 million") == "€52400000" assert std("£77 thousands") == "£77000s" assert std("two double o eight") == "2008" assert std("three thousand twenty nine") == "3029" assert std("forty three thousand two hundred sixty") == "43260" assert std("forty three thousand two hundred and sixty") == "43260" assert std("nineteen fifties") == "1950s" assert std("thirty first") == "31st" assert std("thirty three thousand and three hundred and thirty third") == "33333rd" assert std("three billion") == "3000000000" assert std("millions") == "1000000s" assert std("july third twenty twenty") == "july 3rd 2020" assert std("august twenty sixth twenty twenty one") == "august 26th 2021" assert std("3 14") == "3 14" assert std("3.14") == "3.14" assert std("3 point 2") == "3.2" assert std("3 point 14") == "3.14" assert std("fourteen point 4") == "14.4" assert std("two point two five dollars") == "$2.25" assert std("two hundred million dollars") == "$200000000" assert std("$20.1 million") == "$20100000" assert std("ninety percent") == "90%" assert std("seventy six per cent") == "76%" assert std("double oh seven") == "007" assert std("double zero seven") == "007" assert std("nine one one") == "911" assert std("nine double one") == "911" assert std("one triple oh one") == "10001" assert std("two thousandth") == "2000th" assert std("thirty two thousandth") == "32000th" assert std("minus 500") == "-500" assert std("positive twenty thousand") == "+20000" assert std("two dollars and seventy cents") == "$2.70" assert std("3 cents") == "¢3" assert std("$0.36") == "¢36" assert std("three euros and sixty five cents") == "€3.65" assert std("three and a half million") == "3500000" assert std("forty eight and a half dollars") == "$48.5" assert std("b747") == "b 747" assert std("10 th") == "10th" assert std("10th") == "10th" def test_spelling_normalizer(): std = EnglishSpellingNormalizer() assert std("mobilisation") == "mobilization" assert std("cancelation") == "cancellation" def test_text_normalizer(): std = EnglishTextNormalizer() assert std("Let's") == "let us" assert std("he's like") == "he is like" assert std("she's been like") == "she has been like" assert std("10km") == "10 km" assert std("10mm") == "10 mm" assert std("RC232") == "rc 232" assert ( std("Mr. Park visited Assoc. Prof. Kim Jr.") == "mister park visited associate professor kim junior" )