add doctest and unittest for render

This commit is contained in:
Lafrite 2015-03-07 20:04:16 +01:00
parent cdfd70d3f3
commit d503db6cef
2 changed files with 37 additions and 22 deletions

View File

@ -386,8 +386,14 @@ class op(object):
2 2
>>> mul.__tex__('1','2') >>> mul.__tex__('1','2')
'1 \\times 2' '1 \\times 2'
>>> mul.__tex__('2','a')
'2 a'
>>> mul.__txt__('1','2') >>> mul.__txt__('1','2')
'1 * 2' '1 * 2'
>>> mul.__txt__('2','a')
'2 a'
>>> mul.__txt__('a','2')
'a * 2'
>>> mul.__tex__('1','-2') >>> mul.__tex__('1','-2')
'1 \\times (-2)' '1 \\times (-2)'
""" """
@ -514,24 +520,24 @@ class op(object):
return caract return caract
if __name__ == '__main__': if __name__ == '__main__':
print(op.add.__tex__('1','2')) #print(op.add.__tex__('1','2'))
print(op.mul.__tex__('1','2')) #print(op.mul.__tex__('1','2'))
print(op.sub.__tex__('1','2')) #print(op.sub.__tex__('1','2'))
f = save_mainOp('2 + 3',op.add) #f = save_mainOp('2 + 3',op.add)
print(op.mul.__txt__(f, '4')) #print(op.mul.__txt__(f, '4'))
f = save_mainOp('-3',op.sub1) #f = save_mainOp('-3',op.sub1)
print(op.sub1.__txt__(f)) #print(op.sub1.__txt__(f))
print(op.sub1.__txt__('-3')) #print(op.sub1.__txt__('-3'))
f = save_mainOp('2 + 3',op.add) #f = save_mainOp('2 + 3',op.add)
print(op.sub1.__txt__(f)) #print(op.sub1.__txt__(f))
from .fraction import Fraction #from .fraction import Fraction
f = Fraction(1, 2) #f = Fraction(1, 2)
print(op.add.__txt__(f.__txt__(),'2')) #print(op.add.__txt__(f.__txt__(),'2'))
print(op.add.__tex__(f.__tex__(),'2')) #print(op.add.__tex__(f.__tex__(),'2'))
print("\t op.can_be_operator('+') :" + str(op.can_be_operator('+'))) #print("\t op.can_be_operator('+') :" + str(op.can_be_operator('+')))
print("\t op.can_be_operator('t') :" + str(op.can_be_operator('t'))) #print("\t op.can_be_operator('t') :" + str(op.can_be_operator('t')))
import doctest import doctest

View File

@ -55,7 +55,7 @@ class TestTexRender(unittest.TestCase):
] ]
wanted_render = [ "2 ( 3 x^{ 2 } + 2 x + 1 )", wanted_render = [ "2 ( 3 x^{ 2 } + 2 x + 1 )",
"( 3 x^{ 2 } + 2 x + 1 ) \\times 2", "( 3 x^{ 2 } + 2 x + 1 ) \\times 2",
"( 3 x^{ 2 } + 2 x + 1 ) ( 3 x^{ 2 } + 2 x + 1 )", "( 3 x^{ 2 } + 2 x + 1 ) ( 6 x^{ 2 } + 5 x + 4 )",
] ]
for (i,e) in enumerate(exps): for (i,e) in enumerate(exps):
rend = tex(e) rend = tex(e)
@ -129,11 +129,20 @@ class TesttxtRender(unittest.TestCase):
self.assertEqual(rend, wanted_render[i]) self.assertEqual(rend, wanted_render[i])
def test_mult_letter(self): def test_mult_letter(self):
exps = [ [2, "a", op.get_op("*", 2)], \ exps = [ [2, "a", op.mul], \
["a", 3, op.get_op("*", 2)], \ ["a", 3, op.mul], \
[-2, "a", op.get_op("*", 2)], \ [-2, "a", op.mul], \
["a", -2, op.get_op("*", 2)]] ["a", -2, op.mul],
wanted_render = [ "2 a", "a * 3", "-2 a", "a * ( -2 )"] ["a", -2, op.mul, -2, op.mul],
["a", -2, op.mul, "a", op.mul],
]
wanted_render = [ "2 a",
"a * 3",
"-2 a",
"a * ( -2 )",
"a * ( -2 ) * ( -2 )",
"a * ( -2 ) a",
]
for (i,e) in enumerate(exps): for (i,e) in enumerate(exps):
rend = txt(e) rend = txt(e)
self.assertEqual(rend, wanted_render[i]) self.assertEqual(rend, wanted_render[i])