Hello everyone

I am trying to solve the projects of the Scientific Computing with Python course.

This is my solution for the Arithmetic Formatter link: boilerplate-arithmetic-formatter - Python Repl - Replit. I think it’s good, but the automatic tests fail and I’m not sure why because in all my test it works just fine.

If anyone can help me I will appreciate it. Thanks

Ok, let’s take a look at the failed tests

```
_________________________ test_template[test_two_problems_arrangement1] __________________________
arguments = [['3801 - 2', '123 + 49']]
expected_output = ' 3801 123\n- 2 + 49\n------ -----'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["3801 - 2", "123 + 49"]'
> ???
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["3801 - 2", "123 + 49"]
E assert ' 3801 123\n- 2 + 49\n______ _____' == ' 3801 123\n- 2 + 49\n------ -----'
E 3801 123
E - 2 + 49
E - ------ -----
E + ______ _____
/home/runner/boilerplate-arithmetic-formatter/test_module.py:77: AssertionError
```

The lines starting with `-`

are the expected and the lines starting with `+`

are your code.

Do you see the difference? You used the wrong character, you need dashes like — instead of underscores like ___

If you fix that, various tests will be fixed.

Now, an other batch.

```
________________________ test_template[test_two_problems_with_solutions] _________________________
arguments = [['3 + 855', '988 + 40'], True]
expected_output = ' 3 988\n+ 855 + 40\n----- -----\n 858 1028'
fail_message = 'Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with ["3 + 855", "988 + 40"] and a second argument of `True`.'
> ???
E TypeError: arithmetic_arranger() takes 1 positional argument but 2 were given
/home/runner/boilerplate-arithmetic-formatter/test_module.py:76: TypeError
```

You get a `TypeError`

that says

`arithmetic_arranger() takes 1 positional argument but 2 were given`

It seems you didn’t implement a part of the instructions that says

The function should optionally take a second argument. When the second argument is set to

`True`

, the answers should be displayed.

In the first case, it was changing the low dash for a regular dash. So that’s fixed

In the second case, I did implement that in my code. When I test it in main.py it works fine with and without **True**. I’m not sure why that error appears.

Thanks a lot for the help!

How is implemented? Your `arithmetic_arranger`

function takes only one argument

so the function is ‘arithmetic_arranger(operation)’

Then I check if ‘operation’ has a True in the second argument because the problems come in this form [ ['111+ 11 ', ‘111-11’] , True]

If it doesn’t have a True in the second argument (that is [1]). It means there is no True and the function just has to deal with the operations.

Does that make sense?

No, you need a second parameter.

The function is called `arithmetic_formatter(['111+ 11 ', ‘111-11’], True)`

I made it. So optional argument was the solution.

Thank you very much ilenia

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