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, speech=False)))
     self.assertEqual(
         nice_number(6.0, speech=False), '6',
         'should format 6.0 as 6 not {}'.format(
             nice_number(6.0, speech=False)))
Beispiel #3
0
 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])))
Beispiel #4
0
 def test_specify_denominator_es(self):
     self.assertEqual(
         nice_number(5.5, lang="ca-es", denominators=[1, 2, 3]),
         '5 y medio', 'should format 5.5 as 5 y medio not {}'.format(
             nice_number(5.5, lang="ca-es", denominators=[1, 2, 3])))
     self.assertEqual(
         nice_number(2.333, lang="ca-es", denominators=[1, 2]), '2,333',
         'should format 2.333 as 2,333 not {}'.format(
             nice_number(2.333, lang="ca-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)))
Beispiel #6
0
 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])))
Beispiel #7
0
 def test_specify_denominator(self):
     self.assertEqual(nice_number(5.5, speech=True, denominators=[1, 2, 3]),
                      '5 a polovina',
                      'měl by zformátovat 5.5 jako 5 a půl, ne {}'.format(
                          nice_number(5.5, speech=True, denominators=[1, 2, 3])))
     self.assertEqual(nice_number(2.333, speech=True, denominators=[1, 2]),
                      '2.333',
                      'měl by zformátovat 2.333 jako 2.333, ne {}'.format(
                          nice_number(2.333, speech=True, denominators=[1, 2])))
 def test_specify_denominator(self):
     self.assertEqual(
         nice_number(5.5, denominators=[1, 2, 3]), '5 und ein halb',
         '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, denominators=[1, 2]), '2,333',
         'should format 2,333 as 2,333 not {}'.format(
             nice_number(2.333, denominators=[1, 2])))
Beispiel #9
0
 def test_no_speech(self):
     self.assertEqual(nice_number(6.777, speech=False),
                      '6 7/9',
                      'měl by zformátovat 6.777 jako 6 7/9 ne {}'.format(
                          nice_number(6.777, speech=False)))
     self.assertEqual(nice_number(6.0, speech=False),
                      '6',
                      'měl by zformátovat 6.0 jako 6 ne {}'.format(
                          nice_number(6.0, speech=False)))
Beispiel #10
0
 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])))
Beispiel #11
0
 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")))
Beispiel #12
0
 def test_specify_danominator(self):
     self.assertEqual(
         nice_number(5.5, lang="sv-se", denominators=[1, 2,
                                                      3]), '5 och en 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="sv-se", denominators=[1, 2]), '2.333',
         'should format 2,333 as 2.333 not {}'.format(
             nice_number(2.333, lang="sv-se", denominators=[1, 2])))
Beispiel #13
0
 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])))
Beispiel #14
0
 def test_no_speech_es(self):
     self.assertEqual(
         nice_number(6.777, lang="ca-es", speech=False), '6 7/9',
         'should format 6.777 as 6 7/9 not {}'.format(
             nice_number(6.777, lang="ca-es", speech=False)))
     self.assertEqual(
         nice_number(6.0, lang="ca-es", speech=False), '6',
         'should format 6.0 as 6 not {}'.format(
             nice_number(6.0, lang="ca-es", speech=False)))
     self.assertEqual(
         nice_number(1234567890, lang="ca-es", speech=False),
         '1 234 567 890', 'should format 1234567890 as'
         '1 234 567 890 not {}'.format(
             nice_number(1234567890, lang="ca-es", speech=False)))
     self.assertEqual(
         nice_number(12345.6789, lang="ca-es", speech=False), '12 345,679',
         'should format 12345.6789 as'
         '12 345,679 not {}'.format(
             nice_number(12345.6789, lang="ca-es", speech=False)))
Beispiel #15
0
 def test_convert_float_to_nice_number(self):
     for number, number_str in NUMBERS_FIXTURE_DE.items():
         self.assertEqual(
             nice_number(number), number_str,
             'should format {} as {} and not {}'.format(
                 number, number_str, nice_number(number)))
Beispiel #16
0
 def test_convert_float_to_nice_number(self):
     for number, number_str in NUMBERS_FIXTURE_CS.items():
         self.assertEqual(nice_number(number, speech=True), number_str,
                          'měl by zformátovat {} jako {}, ne {}'.format(
                              number, number_str, nice_number(number, speech=True)))
Beispiel #17
0
 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")))
Beispiel #18
0
 def bypass_warning():
     self.assertEqual(
         nice_number(5.5, lang='as-df'), '5.5',
         'should format 5.5 '
         'as 5.5 not {}'.format(
             nice_number(5.5, lang='as-df')))
from lingua_franca.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)