change op.add and op.sub for better - management
This commit is contained in:
parent
6589f1fbc9
commit
e58567b2f8
@ -281,8 +281,32 @@ class op(object):
|
|||||||
>>> add.__txt__('1','2')
|
>>> add.__txt__('1','2')
|
||||||
'1 + 2'
|
'1 + 2'
|
||||||
>>> add.__tex__('1','-2')
|
>>> add.__tex__('1','-2')
|
||||||
'1 + (-2)'
|
'1 - 2'
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def _render(self, link, *args):
|
||||||
|
"""Global step for __txt__ and __tex__
|
||||||
|
|
||||||
|
:param link: the link between operators
|
||||||
|
:param *args: the operands
|
||||||
|
:returns: the string with operator and operands
|
||||||
|
|
||||||
|
"""
|
||||||
|
if args[1][0] == "-":
|
||||||
|
op1 = self.l_parenthesis(args[0], True)
|
||||||
|
op2 = self.r_parenthesis(args[1][1:], True)
|
||||||
|
ans = link.replace('+','-').format(op1 = op1, op2 = op2)
|
||||||
|
|
||||||
|
ans = save_mainOp(ans, self)
|
||||||
|
return ans
|
||||||
|
else:
|
||||||
|
op1 = self.l_parenthesis(args[0], True)
|
||||||
|
op2 = self.r_parenthesis(args[1], True)
|
||||||
|
ans = link.format(op1 = op1, op2 = op2)
|
||||||
|
|
||||||
|
ans = save_mainOp(ans, self)
|
||||||
|
return ans
|
||||||
|
|
||||||
caract = {
|
caract = {
|
||||||
"operator" : "+", \
|
"operator" : "+", \
|
||||||
"name" : "add",\
|
"name" : "add",\
|
||||||
@ -291,6 +315,7 @@ class op(object):
|
|||||||
"actions" : ("__add__","__radd__"), \
|
"actions" : ("__add__","__radd__"), \
|
||||||
"txt" : "{op1} + {op2}",\
|
"txt" : "{op1} + {op2}",\
|
||||||
"tex" : "{op1} + {op2}",\
|
"tex" : "{op1} + {op2}",\
|
||||||
|
"_render": _render,\
|
||||||
}
|
}
|
||||||
|
|
||||||
return caract
|
return caract
|
||||||
@ -321,6 +346,8 @@ class op(object):
|
|||||||
try:
|
try:
|
||||||
if op.mainOp.priority <= self.priority:
|
if op.mainOp.priority <= self.priority:
|
||||||
op = flatten_list(["(", op, ")"])
|
op = flatten_list(["(", op, ")"])
|
||||||
|
elif op[0] == '-':
|
||||||
|
op = flatten_list(["(", op, ")"])
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
# op has not the attribute priority
|
# op has not the attribute priority
|
||||||
try:
|
try:
|
||||||
|
@ -33,7 +33,7 @@ class TestTexRender(unittest.TestCase):
|
|||||||
[-2, 3, op.add ],
|
[-2, 3, op.add ],
|
||||||
]
|
]
|
||||||
wanted_render = [ "2 + 3",
|
wanted_render = [ "2 + 3",
|
||||||
"2 + ( -3 )",
|
"2 - 3",
|
||||||
"-2 + 3",
|
"-2 + 3",
|
||||||
]
|
]
|
||||||
for (i,e) in enumerate(exps):
|
for (i,e) in enumerate(exps):
|
||||||
@ -49,7 +49,7 @@ class TestTexRender(unittest.TestCase):
|
|||||||
wanted_render = [ "2 + a",
|
wanted_render = [ "2 + a",
|
||||||
"a + 3",
|
"a + 3",
|
||||||
"-2 + a",
|
"-2 + a",
|
||||||
"a + ( -2 )",
|
"a - 2",
|
||||||
]
|
]
|
||||||
for (i,e) in enumerate(exps):
|
for (i,e) in enumerate(exps):
|
||||||
rend = tex(e)
|
rend = tex(e)
|
||||||
|
Loading…
Reference in New Issue
Block a user