def test_values_int_007(self): expect = [ {'val': 5, 'beg': 3, 'end': 4}, {'val': 60, 'beg': 5, 'end': 7}, {'val': 700, 'beg': 8, 'end': 11}, ] self.assertEqual(values('数列、5、60、700、'), expect)
def test_values_int_006(self): expect = [ {'val': 1000, 'beg': 0, 'end': 6}, {'val': 2000, 'beg': 7, 'end': 13}, {'val': 3000, 'beg': 14, 'end': 20}, ] self.assertEqual(values('1,000, 2,000, 3,000,'), expect)
def kansujis(src, one=True): """ Convert from mixed Japanese number notations to Knasuji string values. The return value is a list of Kansuji value objects. If the input string has no number notation, `kansujis` returns a empty list. The result object has three keys: `val`, `beg`, and `end`: :val: the string value of the Kansuji notation. :beg: the start postion of the found number notation at the input string. :end: the end postion of the found number notation. :param src: a input string. :param one: a boolean flag for the display `ichi`. Default is True. :return: a list of the Kansuji value objects. """ val = values(src) for v in val: v['val'] = Kansuji.value(v['val'], one) return val
def kansuji(src, one=True): """ Convert from mixed number notations to Kansuji string. The return value is a converted str. If the input string has no number notation, `kansuji` returns the input str. :param src: a input string. :param one: a boolean flag for the display `ichi`. Default is True. :return: a converted str. """ vals = values(src) if 0 == len(vals): return src start = 0 s = '' for v in vals: s += src[start:v['beg']] s += Kansuji.value(v['val'], one) start = v['end'] s += src[start:len(src)] return s
def test_values_int_000(self): expect = [ {'val': 5, 'beg': 0, 'end': 1} ] self.assertEqual(values('5'), expect)
def test_empty_3(self): self.assertEqual(values('こんにちは'), [])
def test_values_kansuji_000(self): expect = [ {'val': 250, 'beg': 0, 'end': 4}, ] self.assertEqual(values('二百五十円'), expect)
def test_values_int_005(self): expect = [ {'val': 400, 'beg': 0, 'end': 4} ] self.assertEqual(values('400, 円になります。'), expect)
def test_values_kansuji_004(self): expect = [ {'val': 11110000, 'beg': 0, 'end': 8}, ] self.assertEqual(values('一千一百一十一万円'), expect)
def test_values_kansuji_012(self): expect = [ {'val': 12000000000052, 'beg': 3, 'end': 9}, ] self.assertEqual(values('価格は十二兆五十二'), expect)
def test_values_int_003(self): expect = [ {'val': 2, 'beg': 2, 'end': 3} ] self.assertEqual(values('値は2'), expect)
def test_values_kansuji_009(self): expect = [ {'val': 91180000, 'beg': 0, 'end': 6}, ] self.assertEqual(values('九千百十八万円'), expect)
def test_values_kansuji_010(self): expect = [ {'val': 11101111, 'beg': 0, 'end': 8}, ] self.assertEqual(values('千百十万千百十一円'), expect)
def test_values_kansuji_008(self): expect = [ {'val': 12130000, 'beg': 0, 'end': 6}, ] self.assertEqual(values('千二百十三万円'), expect)
def test_values_kansuji_007(self): expect = [ {'val': 11100000, 'beg': 0, 'end': 4}, ] self.assertEqual(values('千百十万円'), expect)
def test_values_kansuji_006(self): expect = [ {'val': 11110000, 'beg': 3, 'end': 11}, ] self.assertEqual(values('価格は一千一百一十一万円です。'), expect)
def test_values_int_001(self): expect = [ {'val': 5, 'beg': 3, 'end': 4} ] self.assertEqual(values('これは5円です。'), expect)
def test_values_kansuji_013(self): expect = [ {'val': 1001000000000052, 'beg': 0, 'end': 6}, ] self.assertEqual(values('千一兆五十二円になります。'), expect)
def test_values_int_002(self): expect = [ {'val': 1000, 'beg': 3, 'end': 8} ] self.assertEqual(values('これは1,000円です。'), expect)
def test_values_kansuji_001(self): expect = [ {'val': 1007, 'beg': 0, 'end': 2}, ] self.assertEqual(values('千七円'), expect)
def test_values_int_004(self): expect = [ {'val': 3000, 'beg': 2, 'end': 7} ] self.assertEqual(values('値は3,000'), expect)
def test_values_decimal_001(self): expect = [ {'val': 0.0007, 'beg': 0, 'end': 6}, ] self.assertFloatArray(values('0.0007'), expect)
def test_values_kansuji_014(self): expect = [ {'val': 604002005, 'beg': 0, 'end': 9}, ] self.assertEqual(values('6億400万2千5になります。'), expect)
def test_values_kansuji_003(self): expect = [ {'val': 10000000, 'beg': 0, 'end': 3}, ] self.assertEqual(values('一千万円'), expect)
def test_values_decimal_000(self): expect = [ {'val': 0.6, 'beg': 0, 'end': 3}, ] self.assertFloatArray(values('0.6'), expect)
def test_values_kansuji_015(self): expect = [ {'val': 11110, 'beg': 0, 'end': 4}, ] self.assertEqual(values('万千百十'), expect)
def test_values_decimal_002(self): expect = [ {'val': 0.987654321, 'beg': 0, 'end': 11}, ] self.assertFloatArray(values('0.987654321'), expect)
def test_values_kansuji_016(self): expect = [ {'val': 1, 'beg': 0, 'end': 1}, {'val': 2000000305017, 'beg': 6, 'end': 15}, ] self.assertEqual(values('1つの価格が二兆30万五千十7円になります。'), expect)
def test_empty_2(self): self.assertEqual(values(''), [])
def test_values_decimal_010(self): expect = [ {'val': 0.00123, 'beg': 2, 'end': 8}, ] self.assertFloatArray(values('多分.00123です。'), expect)