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])
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)
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
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])
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])
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])
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])
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])