sove bug with negative fractions display
This commit is contained in:
parent
e3d1870d33
commit
a38ba53577
@ -114,6 +114,20 @@ class Polynom(object):
|
||||
:param i: power
|
||||
:returns: postfix tokens of coef
|
||||
|
||||
>>> p = Polynom()
|
||||
>>> p.coef_postfix([3],2)
|
||||
[3, 'x', 2, '^', '*']
|
||||
>>> p.coef_postfix([0],1)
|
||||
[]
|
||||
>>> p.coef_postfix([3],0)
|
||||
[3]
|
||||
>>> p.coef_postfix([3],1)
|
||||
[3, 'x', '*']
|
||||
>>> p.coef_postfix([1],1)
|
||||
['x']
|
||||
>>> p.coef_postfix([1],2)
|
||||
['x', 2, '^']
|
||||
|
||||
"""
|
||||
# TODO: Couille certaine avec txt à qui il fait donner des opérateurs tout beau! |mar. nov. 11 13:08:35 CET 2014
|
||||
ans =[]
|
||||
@ -135,6 +149,7 @@ class Polynom(object):
|
||||
:returns: the postfix list of polynom's tokens
|
||||
|
||||
"""
|
||||
# TODO: Faudrait factoriser un peu tout ça..! |dim. déc. 21 16:02:34 CET 2014
|
||||
postfix = []
|
||||
for (i,a) in list(enumerate(self._coef))[::-1]:
|
||||
operator = [op.add]
|
||||
@ -151,9 +166,15 @@ class Polynom(object):
|
||||
# case need to repeat the x^i
|
||||
for b in a:
|
||||
if len(postfix) == 0 and isNumber(b) and b < 0:
|
||||
try:
|
||||
b = [(-b)[-1]]
|
||||
except TypeError:
|
||||
b = [-b]
|
||||
operator_sub1 = [op.sub1]
|
||||
elif len(postfix) > 0 and isNumber(b) and b < 0:
|
||||
try:
|
||||
b = [(-b)[-1]]
|
||||
except TypeError:
|
||||
b = [-b]
|
||||
operator = [op.sub]
|
||||
else:
|
||||
@ -168,9 +189,15 @@ class Polynom(object):
|
||||
|
||||
elif a != 0:
|
||||
if len(postfix) == 0 and a < 0:
|
||||
try:
|
||||
a = [(-a)[-1]]
|
||||
except TypeError:
|
||||
a = [-a]
|
||||
operator_sub1 = [op.sub1]
|
||||
elif len(postfix) > 0 and a < 0:
|
||||
try:
|
||||
a = [(-a)[-1]]
|
||||
except TypeError:
|
||||
a = [-a]
|
||||
operator = [op.sub]
|
||||
else:
|
||||
@ -327,7 +354,7 @@ class Polynom(object):
|
||||
|
||||
steps += p.simplify()
|
||||
|
||||
#print("steps -> \n", "\n".join(["\t {}".format(s._coef) for s in steps]))
|
||||
#print("steps -> \n", "\n".join(["\t {}".format(s.postfix) for s in steps]))
|
||||
|
||||
return steps
|
||||
|
||||
@ -343,20 +370,20 @@ def test(p,q):
|
||||
print("p : ",p)
|
||||
print("q : ",q)
|
||||
|
||||
print("\n Plus ------")
|
||||
print(p, "+", q)
|
||||
for i in (p + q):
|
||||
#print(repr(i))
|
||||
print("\t", str(i.postfix))
|
||||
print(i)
|
||||
#print((p+q)[-1]._coef)
|
||||
#print("\n Plus ------")
|
||||
#print(p, "+", q)
|
||||
#for i in (p + q):
|
||||
# #print(repr(i))
|
||||
# #print("\t", str(i.postfix))
|
||||
# print(i)
|
||||
##print((p+q)[-1]._coef)
|
||||
|
||||
print("\n Moins ------")
|
||||
for i in (p - q):
|
||||
#print(repr(i))
|
||||
#print("\t", str(i.postfix))
|
||||
print(i)
|
||||
#print((p-q)[-1]._coef)
|
||||
#print("\n Moins ------")
|
||||
#for i in (p - q):
|
||||
# #print(repr(i))
|
||||
# #print("\t", str(i.postfix))
|
||||
# print(i)
|
||||
##print((p-q)[-1]._coef)
|
||||
|
||||
print("\n Multiplier ------")
|
||||
for i in (p * q):
|
||||
@ -368,16 +395,20 @@ def test(p,q):
|
||||
|
||||
if __name__ == '__main__':
|
||||
from .fraction import Fraction
|
||||
p = Polynom([1, -2 ])
|
||||
q = Polynom([4, 7, 4])
|
||||
test(p,q)
|
||||
#p = Polynom([1, -2 ])
|
||||
#q = Polynom([4, 7, 4])
|
||||
#test(p,q)
|
||||
|
||||
q = Polynom([0, Fraction(1,2), 0, Fraction(-4,3)])
|
||||
test(p,q)
|
||||
#q = Polynom([0, Fraction(1,2), 0, Fraction(-4,3)])
|
||||
#test(p,q)
|
||||
|
||||
print("\n")
|
||||
p = Polynom([-1,-2,-3])
|
||||
print(p)
|
||||
#print("\n")
|
||||
#p = Polynom([-1,-2,-3])
|
||||
#print(p)
|
||||
|
||||
p = Polynom([-2])
|
||||
q = Polynom([0,0,Fraction(1,2)])
|
||||
test(p,q)
|
||||
|
||||
#p = Polynom([1, 1, 1 ])
|
||||
#print(p)
|
||||
|
Loading…
Reference in New Issue
Block a user