# Scientific computing certification project

I’ve completed the first project, the arithmetic formatter, and tested the code myself. It catches all errors as it should and formatts the answer as specified. However the testing program on replit gives me two failures on the format and the answers.
What should I do?

try to figure out why it is failing, or post your project here so we can see the errors and help you

Here’s my code, the thing is that it prints everything as it should, the test program fails it though

``````def arithmetic_arranger(problems, solutions=bool):

operand1 = []
operator = []
operand2 = []
results = []
op_length = []

# check the number of problems
if len(problems) > 5:
return 'Error: Too many problems.'

# split the problems into lists of operators and first and second operands
for i in range(len(problems)):
operand1.append(problems[i].split())
operator.append(problems[i].split())
operand2.append(problems[i].split())

# check for invalid operators
for i in operator:
if not i == '+':
if not i == '-':
return "Error: Operator must be '+' or '-'."

# check for invalid operands
for i in operand1:
if not i.isnumeric():
return "Error: Numbers must only contain digits."

for i in operand2:
if not i.isnumeric():
return "Error: Numbers must only contain digits."

# check size of numbers
for i in operand1:
if len(i) > 4:
return "Error: Numbers cannot be more than four digits."

for i in operand2:
if len(i) > 4:
return "Error: Numbers cannot be more than four digits."

# compare length of individual operands
for i in range(len(problems)):
if len(operand1[i]) > len(operand2[i]):
op_length.append(len(operand1[i]))
else:
op_length.append(len(operand2[i]))

# arrange the output
space = ' '
first_line = ''
second_line = ''
third_line = ''
fourth_line = ''

for i in range(len(problems)):
first_line = first_line + space * (2 + op_length[i] - len(operand1[i])) + operand1[i] + space * 4
second_line = second_line + operator[i] + space * (1 + op_length[i] - len(operand2[i])) + operand2[
i] + space * 4
third_line = third_line + '-' * (2 + op_length[i]) + space * 4

arranged_problems = first_line + '\n' + second_line + '\n' + third_line

# calculate the results of the problems
if solutions:
for i in range(len(problems)):
if operator[i] == '+':
results.append(int(operand1[i]) + int(operand2[i]))
else:
results.append(int(operand1[i]) - int(operand2[i]))

for i in range(len(problems)):
fourth_line = fourth_line + space*(2 + op_length[i] - len(str(results[i]))) + str(results[i]) + space*4

arranged_problems = arranged_problems + '\n' + fourth_line

return arranged_problems
``````

can you share the project link or at least the error messages?

so, you have a couple of tests failing

``````AssertionError: '    [23 chars]  123    \n+ 855    -    2    + 43    +  49   [73 chars]    ' != '    [23 chars]  123\n+ 855    -    2    + 43    +  49\n-----[23 chars]----'
-     3      3801      45      123
?                                 ----
+     3      3801      45      123
- + 855    -    2    + 43    +  49
?                                 ----
+ + 855    -    2    + 43    +  49
- -----    ------    ----    -----
?                                 -----
+ -----    ------    ----    -----
-   858      3799      88      172
``````

the lines starting with `-` are your wrong code, the lines starting with `+` are instead the expected result

from there you should be able to get why the test is failing

So if I understand things correctly, the problem is the empty spaces after each line of numbers? Which means that my code does what it should but not the way that is expected for the project?

that’s one, but you also have the solutions when it is not requested

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.