Exemplo n.º 1
0
 def test_parse_USA(self):
     self.assertEqual(tamilstr2num(["ஒரு", "மில்லியன்", "பத்து", "ஆயிரம்"]),
                      1e6 + 1e4)
     self.assertEqual(
         tamilstr2num(["ஒரு", "மில்லியன்", "ஆயிரம்", "புள்ளி", "ஐந்து"]),
         1001000.5)
     self.assertEqual(tamilstr2num(["இருபது", "டிரில்லியன்"]), 20e12)
Exemplo n.º 2
0
def கணக்கிடு( _தொடர் ):
        தமிழ்_உரை_தொடர் = re.sub('\s+',' ',_தொடர்)
        # செயல்சார்புகளை குறியீடுகளாக மாற்றவும்
        for பெயர்,குறியீடு in செயல்சார்புகள்.items():
            தமிழ்_உரை_தொடர் = தமிழ்_உரை_தொடர்.replace(பெயர்,குறியீடு[0])
        இடைநிலை0=list()
        இடைநிலை1=list()
        for துண்டு in தமிழ்_உரை_தொடர்.split(' '):
            if துண்டு in செயல்சார்புகள்_குறியீடுகள்:
                if துண்டு in ('(',')',) and len(இடைநிலை1) == 0:
                    இடைநிலை0.append(துண்டு)
                else:
                    மதிப்பு=tamil.numeral.tamilstr2num(இடைநிலை1)
                    இடைநிலை0.append('%g'%மதிப்பு)
                    இடைநிலை0.append(துண்டு)
                    இடைநிலை1=list()
            else:
                இடைநிலை1.append(துண்டு)
        # கடைசி செயல்சார்பின் எண் என்ன? விட்டுப்போகாமல் பாருங்கள்.
        if len(இடைநிலை1) > 0:
            மதிப்பு=tamilstr2num(இடைநிலை1)
            இடைநிலை0.append('%g'%மதிப்பு)
        # மீளமைப்பு செய்துகொள்ளுங்கள் ...
        தமிழ்_உரை_தொடர் = ' '.join(இடைநிலை0)
        if வழுநீகால்_இயக்கம்:
            அச்சிடு(தமிழ்_உரை_தொடர்)
        விடை = கணி(தமிழ்_உரை_தொடர்)
        # இருவகைகளில் எழுதிப்பார்க்கவும்.
        அச்சிடு(num2tamilstr( விடை ) )
        அச்சிடு(num2tamilstr_american( விடை ) )
        return விடை
Exemplo n.º 3
0
def கணக்கிடு(_தொடர்):
    """"
    @_தொடர் : Tamil sentence with number to be parsed and evaluated. Supported operators are +, -, /, * spelled out as
     கூட்டல், கழித்தல், பெருக்கல் and வகுத்தல்
    @return @விடை result variable of the computation
    """
    தமிழ்_உரை_தொடர் = re.sub('\s+', ' ', _தொடர்)
    # செயல்சார்புகளை குறியீடுகளாக மாற்றவும்
    for பெயர், குறியீடு in செயல்சார்புகள்.items():
        தமிழ்_உரை_தொடர் = தமிழ்_உரை_தொடர்.replace(பெயர், குறியீடு[0])
    இடைநிலை0 = list()
    இடைநிலை1 = list()
    for துண்டு in தமிழ்_உரை_தொடர்.split(' '):
        if துண்டு in செயல்சார்புகள்_குறியீடுகள்:
            if துண்டு in ('(', ')',) and len(இடைநிலை1) == 0:
                இடைநிலை0.append(துண்டு)
            else:
                மதிப்பு = tamil.numeral.tamilstr2num(இடைநிலை1)
                இடைநிலை0.append('%g' % மதிப்பு)
                இடைநிலை0.append(துண்டு)
                இடைநிலை1 = list()
        else:
            இடைநிலை1.append(துண்டு)
    # கடைசி செயல்சார்பின் எண் என்ன? விட்டுப்போகாமல் பாருங்கள்.
    if len(இடைநிலை1) > 0:
        மதிப்பு = tamilstr2num(இடைநிலை1)
        இடைநிலை0.append('%g' % மதிப்பு)
    # மீளமைப்பு செய்துகொள்ளுங்கள் ...
    தமிழ்_உரை_தொடர் = ' '.join(இடைநிலை0)
    if வழுநீகால்_இயக்கம்:
        அச்சிடு(தமிழ்_உரை_தொடர்)
    விடை = கணி(தமிழ்_உரை_தொடர்)
    # இருவகைகளில் எழுதிப்பார்க்கவும்.
    அச்சிடு(num2tamilstr(விடை))
    அச்சிடு(num2tamilstr_american(விடை))
    return விடை
Exemplo n.º 4
0
 def test_parse_fractional(self):
     self.assertEqual(tamilstr2num(["இருபது", "ஆயிரம்"]), 20e3)
     self.assertEqual(tamilstr2num(["ஆயிரம்", "புள்ளி", "ஐந்து"]), 1000.5)
Exemplo n.º 5
0
 def test_20lakh_crores(self):
     self.assertEqual(tamilstr2num(["இருபது", "இலட்சம்", "கோடி"]),
                      20e5 * 1e7)
Exemplo n.º 6
0
 def test_1lakh_crores(self):
     self.assertEqual(tamilstr2num("ஒரு இலட்சம் கோடி".split(' ')),
                      1000000000000)
Exemplo n.º 7
0
 def test_parse(self):
     self.assertEqual(tamilstr2num("இருநூற்று நாற்பத்தைந்து".split(' ')),
                      245.0)
     self.assertEqual(
         tamilstr2num("நூற்றி இரண்டு ஆயிரத்து நாநூற்று பத்து".split(' ')),
         102410.0)
     self.assertEqual(tamilstr2num(["ஓர்", "ஆயிரம்"]), 1000.0)
     self.assertEqual(tamilstr2num(["ஆயிரம்"]), 1000.0)
     self.assertEqual(tamilstr2num(["மில்லியன்"]), 1e6)
     self.assertEqual(tamilstr2num(["கோடி"]), 1e7)
     self.assertEqual(tamilstr2num(["பில்லியன்"]), 1e9)
     self.assertEqual(tamilstr2num(["பத்து", "கோடி"]), 1e8)
     self.assertEqual(tamilstr2num(["பத்து", "கோடி", "ஐம்பது"]), 1e8 + 50)
     self.assertEqual(
         tamilstr2num("ஓர் ஆயிரத்து அறுநூற்று ஒன்பது".split(' ')),
         1000 + 600 + 9)
     self.assertEqual(tamilstr2num(["இருபது", "இலட்சம்"]), 20e5)
     self.assertEqual(tamilstr2num(["இருபது", "இலட்சம்", "ஒன்று"]),
                      20e5 + 1)
     self.assertEqual(tamilstr2num(["இருபது", "ஆயிரம்"]), 20e3)
     self.assertEqual(tamilstr2num(["இருபது", "ஆயிரம்", "கோடி"]),
                      20e3 * 1e7)
Exemplo n.º 8
0
 def test_compound(self):
     self.assertEqual(2000.0, tamilstr2num("இரண்டாயிரம்"))