Tell us what’s happening:
Hello there, im stuck in the last line of my arithmetic formatter, i done all the stuff but the print of the problems that my code solve is not parsing with the format that freecodecamp requires. I dont know what is, im testing my algorith in jupyter and vscode and is going well but when i put it on the prompt of freecodecamp my code doesnt run well.
Your code so far
def arithmetic_arranger(problems, solve=False):
fNumber = list()
operator = list()
sNumber = list()
mLength = list()
el1 = []
el2 = []
el3 = []
el4 = []
#Handling format problems
if len(problems) > 5:
return "Error: Too many problems."
for el in range(len(problems)):
x = problems[el].split()
if x[1] == "*" or x[1] =="/":
return "Error: Operator must be '+' or '-'."
try:
x[0] = int(x[0])
x[2] = int(x[2])
if x[0] > 9999 or x[2] > 9999:
return "Error: Numbers cannot be more than four digits."
except:
return 'Error: Numbers must only contain digits.'
# only append numbers or operators allowed
fNumber.append(x[0])
operator.append(x[1])
sNumber.append(x[2])
mLength.append(max(len(str(x[0])), len(str(x[2]))))
if x[1] == '+':
el4.append(str(x[0] + x[2]).rjust(5) + ' ')
elif x[1] == '-':
el4.append(str(x[0] - x[2]).rjust(5) + ' ')
for el in fNumber:
el1.append(str(el).rjust(5)+' ')
count_sNumber = 0
for el in operator:
el2.append(str(el) + str(sNumber[count_sNumber]).rjust(4) + ' ')
count_sNumber += 1
for el in mLength:
if el > 3:
el3.append('-'*((el+1)) + ' ')
else:
el3.append('-'*((el+(5-el))) + ' ')
el1 = [''.join(el1[:])]
el2 = [''.join(el2[:])]
el3 = [''.join(el3[:])]
el4 = [''.join(el4[:])]
if solve == False:
for s1,s2,s3 in zip (el1,el2,el3):
print(s1)
print(s2)
print(s3)
elif solve == True:
for s1,s2,s3,s4 in zip (el1,el2,el3,el4):
print(s1)
print(s2)
print(s3)
print(s4)
** The error**
FAIL: test_arrangement (test_module.UnitTests)
Traceback (most recent call last):
File “/home/runner/boilerplate-arithmetic-formatter-2/test_module.py”, line 10, in test_arrangement
self.assertEqual(actual, expected, ‘Expected different output when calling “arithmetic_arranger()” with [“3 + 855”, “3801 - 2”, “45 + 43”, “123 + 49”]’)
AssertionError: None != ’ 3 3801 45 123\n+ 855 [56 chars]----’ : Expected different output when calling “arithmetic_arranger()” with [“3 + 855”, “3801 - 2”, “45 + 43”, “123 + 49”]
======================================================================
FAIL: test_solutions (test_module.UnitTests)
Traceback (most recent call last):
File “/home/runner/boilerplate-arithmetic-formatter-2/test_module.py”, line 39, in test_solutions
self.assertEqual(actual, expected, ‘Expected solutions to be correctly displayed in output when calling “arithmetic_arranger()” with arithmetic problems and a second argument of True.’)
AssertionError: None != ’ 32 1 45 123\n- 698 [90 chars] 172’ : Expected solutions to be correctly displayed in output when calling “arithmetic_arranger()” with arithmetic problems and a second argument of True.
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36.
Challenge: Arithmetic Formatter
Link to the challenge:
https://www.freecodecamp.org/learn/scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter