def test_unknown_language(self): """ An unknown / unhandled language should return the string representation of the input number. """ self.assertEqual( nice_number(5.5, lang='as-fd'), '5.5', 'should format 5.5 as 5.5 not {}'.format( nice_number(5.5, lang='as-df')))
def test_no_speech(self): self.assertEqual( nice_number(6.777, speech=False), '6 7/9', 'should format 6.777 as 6 7/9 not {}'.format( nice_number(6.777, lang="da-dk", speech=False))) self.assertEqual( nice_number(6.0, speech=False), '6', 'should format 6.0 as 6 not {}'.format( nice_number(6.0, lang="da-dk", speech=False)))
def test_specify_danominator(self): self.assertEqual( nice_number(5.5, lang="da-dk", denominators=[1, 2, 3]), '5 og 1 halv', 'should format 5.5 as 5 und ein halb not {}'.format( nice_number(5.5, denominators=[1, 2, 3]))) self.assertEqual( nice_number(2.333, lang="da-dk", denominators=[1, 2]), '2,333', 'should format 2,333 as 2,333 not {}'.format( nice_number(2.333, lang="da-dk", denominators=[1, 2])))
def test_specify_denominator_es(self): self.assertEqual( nice_number(5.5, lang="es-es", denominators=[1, 2, 3]), '5 y medio', 'should format 5.5 as 5 y medio not {}'.format( nice_number(5.5, lang="es-es", denominators=[1, 2, 3]))) self.assertEqual( nice_number(2.333, lang="es-es", denominators=[1, 2]), '2,333', 'should format 2.333 as 2,333 not {}'.format( nice_number(2.333, lang="es-es", denominators=[1, 2])))
def test_no_speech(self): self.assertEqual(nice_number(6.777, speech=False, lang="it"), '6 7/9', 'dovrebbe formattare 6.777 come 6 7/9 non {}'.format( nice_number(6.777, speech=False))) self.assertEqual(nice_number(6.0, speech=False, lang="it"), '6', 'dovrebbe formattare 6.0 come 6 non {}'.format( nice_number(6.0, speech=False)))
def test_specify_denominator(self): self.assertEqual( nice_number(5.5, denominators=[1, 2, 3]), '5 and a half', 'should format 5.5 as 5 and a half not {}'.format( nice_number(5.5, denominators=[1, 2, 3]))) self.assertEqual( nice_number(2.333, denominators=[1, 2]), '2.333', 'should format 2.333 as 2.333 not {}'.format( nice_number(2.333, denominators=[1, 2])))
def test_specify_denominator_fr(self): self.assertEqual( nice_number(5.5, lang="fr-fr", denominators=[1, 2, 3]), '5 et demi', 'should format 5.5 as 5 et demi not {}'.format( nice_number(5.5, lang="fr-fr", denominators=[1, 2, 3]))) self.assertEqual( nice_number(2.333, lang="fr-fr", denominators=[1, 2]), '2,333', 'should format 2.333 as 2,333 not {}'.format( nice_number(2.333, lang="fr-fr", denominators=[1, 2])))
def test_specify_denominator(self): self.assertEqual( nice_number(5.5, lang="hu-hu", denominators=[1, 2, 3]), '5 és fél', 'should format 5.5 as 5 és fél not {}'.format( nice_number(5.5, denominators=[1, 2, 3]))) self.assertEqual( nice_number(2.333, lang="hu-hu", denominators=[1, 2]), '2,333', 'should format 2,333 as 2,333 not {}'.format( nice_number(2.333, lang="hu-hu", denominators=[1, 2])))
def test_specify_denominator(self): self.assertEqual(nice_number(5.5, lang="nl-nl", denominators=[1, 2, 3]), '5 en één half', 'should format 5.5 as 5 en één half not {}'.format( nice_number(5.5, denominators=[1, 2, 3]))) self.assertEqual(nice_number(2.333, lang="nl-nl", denominators=[1, 2]), '2,333', 'should format 2,333 as 2,333 not {}'.format( nice_number(2.333, lang="nl-nl", denominators=[1, 2])))
def test_specify_denominator(self): self.assertEqual(nice_number(5.5, denominators=[1, 2, 3], lang="it"), '5 e un mezzo', 'dovrebbe dare 5.5 come 5 e un mezzo non {}'.format( nice_number(5.5, denominators=[1, 2, 3], lang="it"))) self.assertEqual(nice_number(2.333, denominators=[1, 2], lang="it"), '2.333', 'dovrebbe dare 2.333 come 2.333 non {}'.format( nice_number(2.333, denominators=[1, 2], lang="it")))
def test_no_speech_es(self): self.assertEqual( nice_number(6.777, lang="es-es", speech=False), '6 7/9', 'should format 6.777 as 6 7/9 not {}'.format( nice_number(6.777, lang="es-es", speech=False))) self.assertEqual( nice_number(6.0, lang="es-es", speech=False), '6', 'should format 6.0 as 6 not {}'.format( nice_number(6.0, lang="es-es", speech=False))) self.assertEqual( nice_number(1234567890, lang="es-es", speech=False), '1 234 567 890', 'should format 1234567890 as' '1 234 567 890 not {}'.format( nice_number(1234567890, lang="es-es", speech=False))) self.assertEqual( nice_number(12345.6789, lang="es-es", speech=False), '12 345,679', 'should format 12345.6789 as' '12 345,679 not {}'.format( nice_number(12345.6789, lang="es-es", speech=False)))
def test_convert_float_to_nice_number(self): for number, number_str in NUMBERS_FIXTURE_da.items(): self.assertEqual( nice_number(number, lang="da-dk"), number_str, 'should format {} as {} and not {}'.format( number, number_str, nice_number(number, lang="da-dk")))
from mycroft_lang_utils.format import nice_duration, nice_date, nice_date_time, \ nice_number, nice_time, pronounce_number # pronounce numbers assert nice_number(25 / 6) == "4 and a sixth" assert nice_number(201) == "201" assert nice_number(3.14159269) == "3 and a seventh" assert pronounce_number(3.14159269) == "three point one four" assert pronounce_number(0) == "zero" assert pronounce_number(10) == "ten" assert pronounce_number(201) == "two hundred and one" assert pronounce_number(102.3) == "one hundred and two point three" assert pronounce_number( 4092949192 ) == "four billion, ninety two million, nine hundred and forty nine thousand, one hundred and ninety two" assert pronounce_number(100034000000299792458, short_scale=True) == \ "one hundred quintillion, thirty four quadrillion, " \ "two hundred and ninety nine million, seven hundred and ninety " \ "two thousand, four hundred and fifty eight" assert pronounce_number(100034000000299792458, short_scale=False) == \ "one hundred trillion, thirty four thousand billion, " \ "two hundred and ninety nine million, seven hundred and ninety " \ "two thousand, four hundred and fifty eight" # pronounce datetime objects import datetime dt = datetime.datetime(2017, 1, 31, 13, 22, 3)
def test_convert_float_to_nice_number_it(self): for number, number_str in NUMBERS_FIXTURE_IT.items(): self.assertEqual(nice_number(number, lang='it'), number_str, 'dovrebbe formattare {} come {} e none {}'.format( number, number_str, nice_number( number, lang="it")))