# Golden outputs captured from the pre-refactor normalizers (after the bug fixes above, reviewed by hand).
# They pin URL / e-mail / symbol / acronym handling and each language's lowercase policy:
# Punjabi keeps Latin case, Hindi lowercases in tts_mode only, the rest always lowercase.
GOLDEN_TTS = {'Visit https://example.com/a/b now': {'hi': 'visit एच टी टी पी एस कोलन स्लैश स्लैश e x a m p l e '
'डॉट c o m स्लैश a स्लैश b now',
'pa': 'Visit ਐਚ ਟੀ ਟੀ ਪੀ ਐੱਸ ਕੋਲਨ ਸਲੈਸ਼ ਸਲੈਸ਼ E X A M P L E '
'ਡਾਟ C O M ਸਲੈਸ਼ A ਸਲੈਸ਼ B now',
'te': 'visit హెచ్ టి టి పి ఎస్ కొలన్ స్లాష్ స్లాష్ e x a m '
'p l e డాట్ c o m స్లాష్ a స్లాష్ b now',
'gu': 'visit એચ ટી ટી પીએસ કોલન સ્લેશ સ્લેશ e x a m p l e '
'ડોટ c o m સ્લેશ a સ્લેશ b now',
'or': 'visit ଏଚ୍ ଟି ଟି ପି ଏସ୍ କୋଲନ୍ ସ୍ଲାଶ୍ ସ୍ଲାଶ୍ e x a m p '
'l e ଡଟ୍ c o m ସ୍ଲାଶ୍ a ସ୍ଲାଶ୍ b now',
'bn': 'visit এইচ টি টি পি এস কোলন স্ল্যাশ স্ল্যাশ e x a m p '
'l e ডট c o m স্ল্যাশ a স্ল্যাশ b now',
'ta': 'visit எச் டி டி பி எஸ் கோலன் ஸ்லாஷ் ஸ்லாஷ் e x a m p '
'l e டாட் c o m ஸ்லாஷ் a ஸ்லாஷ் b now',
'kn': 'visit ಎಚ್ ಟಿ ಟಿ ಪಿ ಎಸ್ ಕೋಲನ್ ಸ್ಲ್ಯಾಶ್ ಸ್ಲ್ಯಾಶ್ e x a '
'm p l e ಡಾಟ್ c o m ಸ್ಲ್ಯಾಶ್ a ಸ್ಲ್ಯಾಶ್ b now',
'ml': 'visit എച്ച് ടി ടി പി എസ് കോളൺ സ്ലാഷ് സ്ലാഷ് e x a m '
'p l e ഡോട്ട് c o m സ്ലാഷ് a സ്ലാഷ് b now'},
'http://x.org': {'hi': 'एच टी टी पी कोलन स्लैश स्लैश x डॉट o r g',
'pa': 'ਐਚ ਟੀ ਟੀ ਪੀ ਕੋਲਨ ਸਲੈਸ਼ ਸਲੈਸ਼ X ਡਾਟ O R G',
'te': 'హెచ్ టి టి పి కొలన్ స్లాష్ స్లాష్ x డాట్ o r g',
'gu': 'એચ ટી ટી પી કોલન સ્લેશ સ્લેશ x ડોટ o r g',
'or': 'ଏଚ୍ ଟି ଟି ପି କୋଲନ୍ ସ୍ଲାଶ୍ ସ୍ଲାଶ୍ x ଡଟ୍ o r g',
'bn': 'এইচ টি টি পি কোলন স্ল্যাশ স্ল্যাশ x ডট o r g',
'ta': 'எச் டி டி பி கோலன் ஸ்லாஷ் ஸ்லாஷ் x டாட் o r g',
'kn': 'ಎಚ್ ಟಿ ಟಿ ಪಿ ಕೋಲನ್ ಸ್ಲ್ಯಾಶ್ ಸ್ಲ್ಯಾಶ್ x ಡಾಟ್ o r g',
'ml': 'എച്ച് ടി ടി പി കോളൺ സ്ലാഷ് സ്ലാഷ് x ഡോട്ട് o r g'},
'see www.amazon.in today': {'hi': 'see w w w डॉट a m a z o n डॉट i n today',
'pa': 'see W W W ਡਾਟ A M A Z O N ਡਾਟ I N today',
'te': 'see w w w డాట్ a m a z o n డాట్ i n today',
'gu': 'see w w w ડોટ a m a z o n ડોટ i n today',
'or': 'see w w w ଡଟ୍ a m a z o n ଡଟ୍ i n today',
'bn': 'see w w w ডট a m a z o n ডট i n today',
'ta': 'see w w w டாட் a m a z o n டாட் i n today',
'kn': 'see w w w ಡಾಟ್ a m a z o n ಡಾಟ್ i n today',
'ml': 'see w w w ഡോട്ട് a m a z o n ഡോട്ട് i n today'},
'mail help@support.in': {'hi': 'mail help at s u p p o r t डॉट i n',
'pa': 'mail help at S U P P O R T ਡਾਟ I N',
'te': 'mail help at s u p p o r t డాట్ i n',
'gu': 'mail help at s u p p o r t ડોટ i n',
'or': 'mail help at s u p p o r t ଡଟ୍ i n',
'bn': 'mail help at s u p p o r t ডট i n',
'ta': 'mail help at s u p p o r t டாட் i n',
'kn': 'mail help at s u p p o r t ಡಾಟ್ i n',
'ml': 'mail help at s u p p o r t ഡോട്ട് i n'},
'a & b 50% off + 2 = 4 * 3 # 1 - 2': {'hi': 'a and b पचास percent off plus दो equals चार star तीन '
'hash एक minus दो',
'pa': 'a and b ਪੰਜਾਹ percent off plus ਦੋ equals ਚਾਰ star '
'ਤਿੰਨ hash ਇੱਕ minus ਦੋ',
'te': 'a and b యాభై percent off plus రెండు equals నాలుగు '
'star మూడు hash ఒకటి minus రెండు',
'gu': 'a and b પચાસ percent off plus બે equals ચાર star '
'ત્રણ hash એક minus બે',
'or': 'a and b ପଚାଶ percent off plus ଦୁଇ equals ଚାରି star '
'ତିନି hash ଏକ minus ଦୁଇ',
'bn': 'a and b পঞ্চাশ percent off plus দুই equals চার star '
'তিন hash এক minus দুই',
'ta': 'a and b ஐம்பது percent off plus இரண்டு equals நான்கு '
'star மூன்று hash ஒன்று minus இரண்டு',
'kn': 'a and b ಐವತ್ತು percent off plus ಎರಡು equals ನಾಲ್ಕು '
'star ಮೂರು hash ಒಂದು minus ಎರಡು',
'ml': 'a and b അമ്പത് percent off plus രണ്ട് equals നാല് '
'star മൂന്ന് hash ഒന്ന് minus രണ്ട്'},
'USA and IBM': {'hi': 'u s a and i b m',
'pa': 'U S A and I B M',
'te': 'u s a and i b m',
'gu': 'u s a and i b m',
'or': 'u s a and i b m',
'bn': 'u s a and i b m',
'ta': 'u s a and i b m',
'kn': 'u s a and i b m',
'ml': 'u s a and i b m'},
'Rs. 500 INR 7 ₹100 USD 3 $20 KRW 9 ₩9': {'hi': 'रुपये पाँच सौ रुपये सात रुपये एक सौ डॉलर तीन '
'डॉलर बीस कोरियाई वॉन नौ कोरियाई वॉन नौ',
'pa': 'ਰੁਪਏ ਪੰਜ ਸੌ ਰੁਪਏ ਸੱਤ ਰੁਪਏ ਸੌ ਡਾਲਰ ਤਿੰਨ ਡਾਲਰ ਵੀਹ '
'ਕੋਰੀਆਈ ਵੌਨ ਨੌਂ ਕੋਰੀਆਈ ਵੌਨ ਨੌਂ',
'te': 'రూపాయలు ఐదు వందలు రూపాయలు ఏడు రూపాయలు వంద '
'డాలర్లు మూడు డాలర్లు ఇరవై కొరియన్ వాన్ తొమ్మిది '
'కొరియన్ వాన్ తొమ్మిది',
'gu': 'રૂપિયા પાંચ સો રૂપિયા સાત રૂપિયા એક સો ડોલર ત્રણ '
'ડોલર વીસ કોરિયન વોન નવ કોરિયન વોન નવ',
'or': 'ଟଙ୍କା ପାଞ୍ଚ ଶହ ଟଙ୍କା ସାତ ଟଙ୍କା ଶହେ ଡଲାର ତିନି '
'ଡଲାର କୋଡିଏ କୋରିଆନ୍ ୱନ୍ ନଅ କୋରିଆନ୍ ୱନ୍ ନଅ',
'bn': 'রুপি পাঁচশো রুপি সাত রুপি একশো ডলার তিন ডলার বিশ '
'কোরিয়ান ওন নয় কোরিয়ান ওন নয়',
'ta': 'ரூபாய் ஐநூறு ரூபாய் ஏழு ரூபாய் நூறு டாலர் மூன்று '
'டாலர் இருபது கொரிய வான் ஒன்பது கொரிய வான் ஒன்பது',
'kn': 'ರೂಪಾಯಿ ಐನೂರು ರೂಪಾಯಿ ಏಳು ರೂಪಾಯಿ ನೂರು ಡಾಲರ್ ಮೂರು '
'ಡಾಲರ್ ಇಪ್ಪತ್ತು ಕೊರಿಯನ್ ವಾನ್ ಒಂಬತ್ತು ಕೊರಿಯನ್ ವಾನ್ '
'ಒಂಬತ್ತು',
'ml': 'രൂപ അഞ്ഞൂറ് രൂപ ഏഴ് രൂപ നൂറ് ഡോളർ മൂന്ന് ഡോളർ '
'ഇരുപത് കൊറിയൻ വോൺ ഒമ്പത് കൊറിയൻ വോൺ ഒമ്പത്'}}
bad = {}
for text, expected in GOLDEN_TTS.items():
for code, spec in INDIC_TTS.items():
out = spec["cls"](tts_mode=True)(text)
if out != expected[code]:
bad[(text, code)] = (out, expected[code])
assert not bad, bad