Add and clear test for Operator and operator_set

This commit is contained in:
Benjamin Bertrand 2016-02-27 11:52:15 +03:00
parent 5002fbe4ae
commit 3ae3d9fb2d
2 changed files with 60 additions and 60 deletions

View File

@ -67,20 +67,28 @@ class Operator():
:*args: Operands for this operation :*args: Operands for this operation
:returns: String with operator and his operands :returns: String with operator and his operands
>>> op.mul.__txt__('1','2') >>> from .mul import Mul
>>> mul= Mul()
>>> from .add import Add
>>> add = Add()
>>> from .sub import Sub
>>> sub = Sub()
>>> from .sub1 import Sub1
>>> sub1 = Sub1()
>>> mul.__txt__('1','2')
'1 * 2' '1 * 2'
>>> op.add.__txt__('1','2') >>> add.__txt__('1','2')
'1 + 2' '1 + 2'
>>> f = save_mainOp('2 + 3',op.add) >>> f = save_mainOp('2 + 3',add)
>>> op.mul.__txt__(f, '4') >>> mul.__txt__(f, '4')
'( 2 + 3 ) * 4' '( 2 + 3 ) * 4'
>>> f = save_mainOp('-3',op.sub1) >>> f = save_mainOp('-3',sub1)
>>> op.sub1.__txt__(f) >>> sub1.__txt__(f)
'- ( -3 )' '- ( -3 )'
>>> op.sub1.__txt__('-3') >>> sub1.__txt__('-3')
'- ( -3 )' '- ( -3 )'
>>> f = save_mainOp('2 + 3',op.add) >>> f = save_mainOp('2 + 3',add)
>>> op.sub1.__txt__(f) >>> sub1.__txt__(f)
'- ( 2 + 3 )' '- ( 2 + 3 )'
""" """
return self._render(self.txt, *args) return self._render(self.txt, *args)
@ -91,20 +99,28 @@ class Operator():
:*args: Operands for this operation :*args: Operands for this operation
:returns: String with operator and his operands :returns: String with operator and his operands
>>> op.mul.__tex__('1','2') >>> from .mul import Mul
>>> mul= Mul()
>>> from .add import Add
>>> add = Add()
>>> from .sub import Sub
>>> sub = Sub()
>>> from .sub1 import Sub1
>>> sub1 = Sub1()
>>> mul.__tex__('1','2')
'1 \\\\times 2' '1 \\\\times 2'
>>> op.add.__tex__('1','2') >>> add.__tex__('1','2')
'1 + 2' '1 + 2'
>>> f = save_mainOp('2 + 3',op.add) >>> f = save_mainOp('2 + 3',add)
>>> op.mul.__tex__(f, '4') >>> mul.__tex__(f, '4')
'( 2 + 3 ) \\\\times 4' '( 2 + 3 ) \\\\times 4'
>>> f = save_mainOp('-3',op.sub1) >>> f = save_mainOp('-3',sub1)
>>> op.sub1.__tex__(f) >>> sub1.__tex__(f)
'- ( -3 )' '- ( -3 )'
>>> op.sub1.__tex__('-3') >>> sub1.__tex__('-3')
'- ( -3 )' '- ( -3 )'
>>> f = save_mainOp('2 + 3',op.add) >>> f = save_mainOp('2 + 3',add)
>>> op.sub1.__tex__(f) >>> sub1.__tex__(f)
'- ( 2 + 3 )' '- ( 2 + 3 )'
""" """
return self._render(self.tex, *args) return self._render(self.tex, *args)
@ -115,19 +131,27 @@ class Operator():
:*args: Operands for this operation :*args: Operands for this operation
:returns: list with the operator surrounded by operands :returns: list with the operator surrounded by operands
>>> op.mul.__p2i__(1,2) >>> from .mul import Mul
[1, '*', 2] >>> mul= Mul()
>>> f = save_mainOp([2, op.add, 3],op.add) >>> from .add import Add
>>> op.mul.__p2i__(f, 4) >>> add = Add()
['(', 2, '+', 3, ')', '*', 4] >>> from .sub import Sub
>>> f = save_mainOp([op.sub1, 3],op.sub1) >>> sub = Sub()
>>> op.sub1.__p2i__(f) >>> from .sub1 import Sub1
['-', '(', '-', 3, ')'] >>> sub1 = Sub1()
>>> op.sub1.__p2i__(-3) >>> mul.__p2i__(1,2)
['-', '(', -3, ')'] [1, *, 2]
>>> f = save_mainOp([2, op.add, 3],op.add) >>> f = save_mainOp([2, add, 3],add)
>>> op.sub1.__p2i__(f) >>> mul.__p2i__(f, 4)
['-', '(', 2, '+', 3, ')'] ['(', 2, +, 3, ')', *, 4]
>>> f = save_mainOp([sub1, 3],sub1)
>>> sub1.__p2i__(f)
[-, '(', -, 3, ')']
>>> sub1.__p2i__(-3)
[-, '(', -3, ')']
>>> f = save_mainOp([2, add, 3],add)
>>> sub1.__p2i__(f)
[-, '(', 2, +, 3, ')']
""" """
if self.arity == 1: if self.arity == 1:
op1 = self.l_parenthesis(args[0]) op1 = self.l_parenthesis(args[0])
@ -201,35 +225,6 @@ def save_mainOp(obj, mainOp):
return Fake(obj) return Fake(obj)
if __name__ == '__main__':
#print(op.add.__tex__('1','2'))
#print(op.mul.__tex__('1','2'))
#print(op.sub.__tex__('1','2'))
#f = save_mainOp('2 + 3',op.add)
#print(op.mul.__txt__(f, '4'))
#f = save_mainOp('-3',op.sub1)
#print(op.sub1.__txt__(f))
#print(op.sub1.__txt__('-3'))
#f = save_mainOp('2 + 3',op.add)
#print(op.sub1.__txt__(f))
#from .fraction import Fraction
#f = Fraction(1, 2)
#print(op.add.__txt__(f.__txt__(),'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('t') :" + str(op.can_be_operator('t')))
print("op.sub.__dict__ -> ", op.sub.__dict__)
print(op.sub == op.sub1)
#import doctest
#doctest.testmod()
# ----------------------------- # -----------------------------
# Reglages pour 'vim' # Reglages pour 'vim'
# vim:set autoindent expandtab tabstop=4 shiftwidth=4: # vim:set autoindent expandtab tabstop=4 shiftwidth=4:

View File

@ -82,6 +82,11 @@ class Operator_set(object):
>>> op.store_operator(Add()) >>> op.store_operator(Add())
>>> op._operators >>> op._operators
{('+', 2): 'add'} {('+', 2): 'add'}
>>> a = op.add
>>> a
+
>>> a.tex
'{op1} + {op2}'
>>> op.store_operator("+") >>> op.store_operator("+")
Traceback (most recent call last): Traceback (most recent call last):
... ...