Esempio n. 1
0
 def test_extract_number_es(self):
     self.assertEqual(
         sorted(extract_numbers("1 7 cuatro catorce ocho 157", lang='es')),
         [1, 4, 7, 8, 14, 157])
     self.assertEqual(
         sorted(
             extract_numbers(
                 "1 7 cuatro albuquerque naranja John Doe catorce ocho 157",
                 lang='es')), [1, 4, 7, 8, 14, 157])
     self.assertEqual(extract_number("seis punto dos", lang='es'), 6.2)
     self.assertEqual(extract_numbers("un medio", lang='es'), [0.5])
Esempio n. 2
0
    def test_extract_number_es(self):
        self.assertEqual(sorted(extract_numbers(
            "1 7 cuatro catorce ocho 157", lang='es')), [1, 4, 7, 8, 14, 157])
        self.assertEqual(sorted(extract_numbers(
            "1 7 cuatro albuquerque naranja John Doe catorce ocho 157",
            lang='es')), [1, 4, 7, 8, 14, 157])
        self.assertEqual(extract_number("seis punto dos", lang='es'), 6.2)
        self.assertEqual(extract_numbers("un medio", lang='es'), [0.5])
        self.assertEqual(extract_number("cuarto", lang='es'), 0.25)

        self.assertEqual(extract_number("2.0", lang='es'), 2.0)
        self.assertEqual(extract_number("1/4", lang='es'), 0.25)

        self.assertEqual(extract_number("dos e media", lang='es'), 2.5)
        self.assertEqual(extract_number(
            "catorce e milésima", lang='es'), 14.001)

        self.assertEqual(extract_number("dos punto cero dos", lang='es'), 2.02)
Esempio n. 3
0
 def num_worker(self, line):
     ### translate numbers to int
     num = ""
     number = ""
     if not extract_numbers(line, lang=self.lang) == []:
         num = extract_numbers(line,
                               short_scale=False,
                               ordinals=False,
                               lang=self.lang)
     #num = re.sub(r'(\.0)', '', str(num))
     #num = re.findall(r'\d+', num)
     if not num is False:
         for item in num:
             print("item #" + str(item))
             if not pronounce_number(
                     float(item), lang=self.lang, short_scale=True) == []:
                 number = pronounce_number(float(item),
                                           lang=self.lang,
                                           short_scale=True)
             else:
                 number = ""
             line = line.replace(number, str(item))
             self.log.info(str(line))
     return line
Esempio n. 4
0
 def test_multiple_numbers(self):
     self.assertEqual(extract_numbers("this is a one two three  test"),
                      [1.0, 2.0, 3.0])
     self.assertEqual(extract_numbers("it's  a four five six  test"),
                      [4.0, 5.0, 6.0])
     self.assertEqual(extract_numbers("this is a ten eleven twelve  test"),
                      [10.0, 11.0, 12.0])
     self.assertEqual(extract_numbers("this is a one twenty one  test"),
                      [1.0, 21.0])
     self.assertEqual(
         extract_numbers("1 dog, seven pigs, macdonald had a "
                         "farm, 3 times 5 macarena"), [1, 7, 3, 5])
     self.assertEqual(extract_numbers("two beers for two bears"),
                      [2.0, 2.0])
     self.assertEqual(extract_numbers("twenty 20 twenty"), [20, 20, 20])
     self.assertEqual(extract_numbers("twenty 20 22"), [20.0, 20.0, 22.0])
     self.assertEqual(extract_numbers("twenty twenty two twenty"),
                      [20, 22, 20])
     self.assertEqual(extract_numbers("twenty 2"), [22.0])
     self.assertEqual(extract_numbers("twenty 20 twenty 2"), [20, 20, 22])
     self.assertEqual(extract_numbers("third one"), [1 / 3, 1])
     self.assertEqual(extract_numbers("third one", ordinals=True), [3])
     self.assertEqual(extract_numbers("six trillion", short_scale=True),
                      [6e12])
     self.assertEqual(extract_numbers("six trillion", short_scale=False),
                      [6e18])
     self.assertEqual(
         extract_numbers("two pigs and six trillion bacteria",
                         short_scale=True), [2, 6e12])
     self.assertEqual(
         extract_numbers("two pigs and six trillion bacteria",
                         short_scale=False), [2, 6e18])
     self.assertEqual(
         extract_numbers("thirty second or first", ordinals=True), [32, 1])
     self.assertEqual(
         extract_numbers("this is a seven eight nine and a"
                         " half test"), [7.0, 8.0, 9.5])
Esempio n. 5
0
 def test_multiple_numbers(self):
     self.assertEqual(extract_numbers("this is a one two three  test"),
                      [1.0, 2.0, 3.0])
     self.assertEqual(extract_numbers("it's  a four five six  test"),
                      [4.0, 5.0, 6.0])
     self.assertEqual(extract_numbers("this is a ten eleven twelve  test"),
                      [10.0, 11.0, 12.0])
     self.assertEqual(extract_numbers("this is a one twenty one  test"),
                      [1.0, 21.0])
     self.assertEqual(extract_numbers("1 dog, seven pigs, macdonald had a "
                                      "farm, 3 times 5 macarena"),
                      [1, 7, 3, 5])
     self.assertEqual(extract_numbers("two beers for two bears"),
                      [2.0, 2.0])
     self.assertEqual(extract_numbers("twenty 20 twenty"),
                      [20, 20, 20])
     self.assertEqual(extract_numbers("twenty 20 22"),
                      [20, 20, 22])
     self.assertEqual(extract_numbers("twenty twenty two twenty"),
                      [20, 22, 20])
     self.assertEqual(extract_numbers("twenty 20 twenty 2"),
                      [20, 20, 20, 2])
     self.assertEqual(extract_numbers("third one"),
                      [1 / 3, 1])
     # NOTE ambiguous case, should return [3] or [3, 1] ?
     self.assertEqual(extract_numbers("third one", ordinals=True),
                      [3, 1])
     self.assertEqual(extract_numbers("six trillion", short_scale=True),
                      [6e12])
     self.assertEqual(extract_numbers("six trillion", short_scale=False),
                      [6e18])
     self.assertEqual(extract_numbers("two pigs and six trillion bacteria",
                                      short_scale=True), [2, 6e12])
Esempio n. 6
0
 def test_multiple_numbers_it(self):
     self.assertEqual(extract_numbers('questo è il test uno due tre',
                                      lang='it'), [1.0, 2.0, 3.0])
     self.assertEqual(extract_numbers('questo è il test quattro sette' +
                                      ' quattro',
                                      lang='it'), [4.0, 7.0, 4.0])
     self.assertEqual(extract_numbers('questo  è il test cinque sei sette',
                                      lang='it'), [5.0, 6.0, 7.0])
     self.assertEqual(extract_numbers('questo è  test dieci undici dodici',
                                      lang='it'), [10.0, 11.0, 12.0])
     self.assertEqual(extract_numbers('test dodici gatti ventuno',
                                      lang='it'), [21.0, 12.0])
     self.assertEqual(extract_numbers('1 cane, sette maiali, macdonald ' +
                                      'aveva la fattoria, 3 volte' +
                                      ' 5 macarena',
                                      lang='it'), [1, 7, 3, 5])
     self.assertEqual(extract_numbers('due birre per due orsi',
                                      lang='it'), [2.0, 2.0])
     self.assertEqual(extract_numbers('venti quaranta trenta',
                                      lang='it'), [20, 40, 30])
     self.assertEqual(extract_numbers('venti 20 22',
                                      lang='it'), [20, 20, 22])
     self.assertEqual(extract_numbers('ventidue matti venti ratti '
                                      'venti gatti',
                                      lang='it'), [22, 20, 20])
     self.assertEqual(extract_numbers('venti 20 venti 2',
                                      lang='it'), [20, 20, 20, 2])
     self.assertEqual(extract_numbers('un terzo uno',
                                      lang='it'), [1 / 3, 1])
     # self.assertEqual(extract_numbers('un terzo uno',
     #                       lang='it', ordinals=True), [3])
     self.assertEqual(extract_numbers('sei miliardi', lang='it',
                                      short_scale=True), [6e9])
     self.assertEqual(extract_numbers('seimilioni', lang='it',
                                      short_scale=False), [6e6])
     self.assertEqual(extract_numbers('dodici maiali accompagnano \
      seimiliardi di batteri', lang='it', short_scale=True), [6e9, 12])
Esempio n. 7
0
 def test_multiple_numbers(self):
     self.assertEqual(extract_numbers("this is a one two three  test"),
                      [1.0, 2.0, 3.0])
     self.assertEqual(extract_numbers("it's  a four five six  test"),
                      [4.0, 5.0, 6.0])
     self.assertEqual(extract_numbers("this is a ten eleven twelve  test"),
                      [10.0, 11.0, 12.0])
     self.assertEqual(extract_numbers("this is a one twenty one  test"),
                      [1.0, 21.0])
     self.assertEqual(
         extract_numbers("1 dog, seven pigs, macdonald had a "
                         "farm, 3 times 5 macarena"), [1, 7, 3, 5])
     self.assertEqual(extract_numbers("two beers for two bears"),
                      [2.0, 2.0])
     self.assertEqual(extract_numbers("twenty 20 twenty"), [20, 20, 20])
     self.assertEqual(extract_numbers("twenty 20 22"), [20, 20, 22])
     self.assertEqual(extract_numbers("twenty twenty two twenty"),
                      [20, 22, 20])
     self.assertEqual(extract_numbers("twenty 20 twenty 2"),
                      [20, 20, 20, 2])
     self.assertEqual(extract_numbers("third one"), [1 / 3, 1])
     # NOTE ambiguous case, should return [3] or [3, 1] ?
     self.assertEqual(extract_numbers("third one", ordinals=True), [3, 1])
     self.assertEqual(extract_numbers("six trillion", short_scale=True),
                      [6e12])
     self.assertEqual(extract_numbers("six trillion", short_scale=False),
                      [6e18])
     self.assertEqual(
         extract_numbers("two pigs and six trillion bacteria",
                         short_scale=True), [2, 6e12])
Esempio n. 8
0
 def test_multiple_numbers(self):
     self.assertEqual(extract_numbers("this is a one two three  test"),
                      [1.0, 2.0, 3.0])
     self.assertEqual(extract_numbers("it's  a four five six  test"),
                      [4.0, 5.0, 6.0])
     self.assertEqual(extract_numbers("this is a ten eleven twelve  test"),
                      [10.0, 11.0, 12.0])
     self.assertEqual(extract_numbers("this is a one twenty one  test"),
                      [1.0, 21.0])
     self.assertEqual(extract_numbers("1 dog, seven pigs, macdonald had a "
                                      "farm, 3 times 5 macarena"),
                      [1, 7, 3, 5])
     self.assertEqual(extract_numbers("two beers for two bears"),
                      [2.0, 2.0])
     self.assertEqual(extract_numbers("twenty 20 twenty"),
                      [20, 20, 20])
     self.assertEqual(extract_numbers("twenty 20 22"),
                      [20.0, 20.0, 22.0])
     self.assertEqual(extract_numbers("twenty twenty two twenty"),
                      [20, 22, 20])
     self.assertEqual(extract_numbers("twenty 2"),
                      [22.0])
     self.assertEqual(extract_numbers("twenty 20 twenty 2"),
                      [20, 20, 22])
     self.assertEqual(extract_numbers("third one"),
                      [1 / 3, 1])
     self.assertEqual(extract_numbers("third one", ordinals=True), [3])
     self.assertEqual(extract_numbers("six trillion", short_scale=True),
                      [6e12])
     self.assertEqual(extract_numbers("six trillion", short_scale=False),
                      [6e18])
     self.assertEqual(extract_numbers("two pigs and six trillion bacteria",
                                      short_scale=True), [2, 6e12])
     self.assertEqual(extract_numbers("two pigs and six trillion bacteria",
                                      short_scale=False), [2, 6e18])
     self.assertEqual(extract_numbers("thirty second or first",
                                      ordinals=True), [32, 1])
     self.assertEqual(extract_numbers("this is a seven eight nine and a"
                                      " half test"),
                      [7.0, 8.0, 9.5])