Hello NikolaV, thank you for your time.
It’s showing a lot of errors but works fine on VsCode,
here’s the output:
python main.py
32 3801 45 123
+ 698 - 2 + 43 + 49
----- ------ ---- -----
============================= test session starts ==============================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/runner/boilerplate-arithmetic-formatter-3
collected 10 items
test_module.py FFFF...FFF [100%]
=================================== FAILURES ===================================
________________ 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"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["3801 - 2", "123 + 49"]
E assert ' 3801 1...---- -----' == ' 3801 ...---- -----'
E - 3801 123
E ? -
E + 3801 123
E - 2 + 49
E ------ -----
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
________________ test_template[test_two_problems_arrangement2] _________________
arguments = [['1 + 2', '1 - 9380']]
expected_output = ' 1 1\n+ 2 - 9380\n--- ------'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["1 + 2", "1 - 9380"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["1 + 2", "1 - 9380"]
E assert ' 1 1...--- ------' == ' 1 ...--- ------'
E - 1 1
E ? -
E + 1 1
E + 2 - 9380
E --- ------
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
________________ test_template[test_four_problems_arrangement] _________________
arguments = [['3 + 855', '3801 - 2', '45 + 43', '123 + 49']]
expected_output = ' 3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]
E assert ' 3 38...---- -----' == ' 3 3...---- -----'
E - 3 3801 45 123
E ? -
E + 3 3801 45 123
E + 855 - 2 + 43 + 49
E ----- ------ ---- -----
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
________________ test_template[test_five_problems_arrangement] _________________
arguments = [['11 + 4', '3801 - 2999', '1 + 2', '123 + 49', '1 - 9380']]
expected_output = ' 11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]
E assert ' 11 380...--- ------' == ' 11 38...--- ------'
E - 11 3801 1 123 1
E ? -
E + 11 3801 1 123 1
E + 4 - 2999 + 2 + 49 - 9380
E ---- ------ --- ----- ------
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
_______________________ test_template[test_only_digits] ________________________
arguments = [['98 + 3g5', '3801 - 2', '45 + 43', '123 + 49']]
expected_output = 'Error: Numbers must only contain digits.'
fail_message = 'Expected calling "arithmetic_arranger()" with a problem that contains a letter character in the number to return "Error: Numbers must only contain digits."'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
> actual = arithmetic_arranger(*arguments)
test_module.py:76:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
val = ['98 + 3g5', '3801 - 2', '45 + 43', '123 + 49'], para2 = False
def arithmetic_arranger(val, para2=False):
listlength= len(val)
row1=""
row2=""
row3=""
row4=""
space=""
space4=""
len4=0
spaceans=""
probnum=0
#---------------------------TESTING IF LIST IS GREATER THAN 5--------------------------------
if (listlength>5):
return("Error: Too many problems.")
#----------------------------SPLITTING STRINGS FROM THE LIST OF STRINGS -------------------------
print(" ",end="")
for i in val:
probnum=probnum+1
string= i.split()
val1=string[0]
val2=string[1]
val3=string[2]
#-------------------------TEST IF CONTAINS NUMBERS ONLY AND NOT GREATER THAN 4 DIGITS-------------------------------
for z in val:
try:
float(val1)
except ValueError:
return("Error: Numbers must only contain digits.")
if(len(val1)>4 or len(val3)>4):
return("Error: Numbers cannot be more than four digits.")
#-------------------------CASTING STRING TO INTEGER---------------------
int1= int(val1)
> int3= int(val3)
E ValueError: invalid literal for int() with base 10: '3g5'
arithmetic_arranger.py:38: ValueError
----------------------------- Captured stdout call -----------------------------
_______________ 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`.'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with ["3 + 855", "988 + 40"] and a second argument of `True`.
E assert ' 3 98... 858 1028' == ' 3 9... 858 1028'
E - 3 988
E ? -
E + 3 988
E + 855 + 40
E ----- -----
E 858 1028
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
_______________ test_template[test_five_problems_with_solutions] _______________
arguments = [['32 - 698', '1 - 3801', '45 + 43', '123 + 49', '988 + 40'], True]
expected_output = ' 32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028'
fail_message = 'Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with five arithmetic problems and a second argument of `True`.'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with five arithmetic problems and a second argument of `True`.
E assert ' 32 ... 172 1028' == ' 32 ... 172 1028'
E - 32 1 45 123 988
E ? -
E + 32 1 45 123 988
E - 698 - 3801 + 43 + 49 + 40
E ----- ------ ---- ----- -----
E -666 -3800 88 172 1028
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
python main.py
32 3801 45 123
+ 698 - 2 + 43 + 49
----- ------ ---- -----
============================= test session starts ==============================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/runner/boilerplate-arithmetic-formatter-3
collected 10 items
test_module.py FFFF...FFF [100%]
=================================== FAILURES ===================================
________________ 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"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["3801 - 2", "123 + 49"]
E assert ' 3801 1...---- -----' == ' 3801 ...---- -----'
E - 3801 123
E ? -
E + 3801 123
E - 2 + 49
E ------ -----
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
________________ test_template[test_two_problems_arrangement2] _________________
arguments = [['1 + 2', '1 - 9380']]
expected_output = ' 1 1\n+ 2 - 9380\n--- ------'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["1 + 2", "1 - 9380"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["1 + 2", "1 - 9380"]
E assert ' 1 1...--- ------' == ' 1 ...--- ------'
E - 1 1
E ? -
E + 1 1
E + 2 - 9380
E --- ------
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
________________ test_template[test_four_problems_arrangement] _________________
arguments = [['3 + 855', '3801 - 2', '45 + 43', '123 + 49']]
expected_output = ' 3 3801 45 123\n+ 855 - 2 + 43 + 49\n----- ------ ---- -----'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]
E assert ' 3 38...---- -----' == ' 3 3...---- -----'
E - 3 3801 45 123
E ? -
E + 3 3801 45 123
E + 855 - 2 + 43 + 49
E ----- ------ ---- -----
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
________________ test_template[test_five_problems_arrangement] _________________
arguments = [['11 + 4', '3801 - 2999', '1 + 2', '123 + 49', '1 - 9380']]
expected_output = ' 11 3801 1 123 1\n+ 4 - 2999 + 2 + 49 - 9380\n---- ------ --- ----- ------'
fail_message = 'Expected different output when calling "arithmetic_arranger()" with ["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected different output when calling "arithmetic_arranger()" with ["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]
E assert ' 11 380...--- ------' == ' 11 38...--- ------'
E - 11 3801 1 123 1
E ? -
E + 11 3801 1 123 1
E + 4 - 2999 + 2 + 49 - 9380
E ---- ------ --- ----- ------
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
_______________________ test_template[test_only_digits] ________________________
arguments = [['98 + 3g5', '3801 - 2', '45 + 43', '123 + 49']]
expected_output = 'Error: Numbers must only contain digits.'
fail_message = 'Expected calling "arithmetic_arranger()" with a problem that contains a letter character in the number to return "Error: Numbers must only contain digits."'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
> actual = arithmetic_arranger(*arguments)
test_module.py:76:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
val = ['98 + 3g5', '3801 - 2', '45 + 43', '123 + 49'], para2 = False
def arithmetic_arranger(val, para2=False):
listlength= len(val)
row1=""
row2=""
row3=""
row4=""
space=""
space4=""
len4=0
spaceans=""
probnum=0
#---------------------------TESTING IF LIST IS GREATER THAN 5--------------------------------
if (listlength>5):
return("Error: Too many problems.")
#----------------------------SPLITTING STRINGS FROM THE LIST OF STRINGS -------------------------
print(" ",end="")
for i in val:
probnum=probnum+1
string= i.split()
val1=string[0]
val2=string[1]
val3=string[2]
#-------------------------TEST IF CONTAINS NUMBERS ONLY AND NOT GREATER THAN 4 DIGITS-------------------------------
for z in val:
try:
float(val1)
except ValueError:
return("Error: Numbers must only contain digits.")
if(len(val1)>4 or len(val3)>4):
return("Error: Numbers cannot be more than four digits.")
#-------------------------CASTING STRING TO INTEGER---------------------
int1= int(val1)
> int3= int(val3)
E ValueError: invalid literal for int() with base 10: '3g5'
arithmetic_arranger.py:38: ValueError
----------------------------- Captured stdout call -----------------------------
_______________ 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`.'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with ["3 + 855", "988 + 40"] and a second argument of `True`.
E assert ' 3 98... 858 1028' == ' 3 9... 858 1028'
E - 3 988
E ? -
E + 3 988
E + 855 + 40
E ----- -----
E 858 1028
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
_______________ test_template[test_five_problems_with_solutions] _______________
arguments = [['32 - 698', '1 - 3801', '45 + 43', '123 + 49', '988 + 40'], True]
expected_output = ' 32 1 45 123 988\n- 698 - 3801 + 43 + 49 + 40\n----- ------ ---- ----- -----\n -666 -3800 88 172 1028'
fail_message = 'Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with five arithmetic problems and a second argument of `True`.'
@pytest.mark.parametrize('arguments,expected_output,fail_message', test_cases)
def test_template(arguments, expected_output, fail_message):
actual = arithmetic_arranger(*arguments)
> assert actual == expected_output, fail_message
E AssertionError: Expected solutions to be correctly displayed in output when calling "arithmetic_arranger()" with five arithmetic problems and a second argument of `True`.
E assert ' 32 ... 172 1028' == ' 32 ... 172 1028'
E - 32 1 45 123 988
E ? -
E + 32 1 45 123 988
E - 698 - 3801 + 43 + 49 + 40
E ----- ------ ---- ----- -----
E -666 -3800 88 172 1028
test_module.py:77: AssertionError
----------------------------- Captured stdout call -----------------------------
=========================== short test summary info ============================
FAILED test_module.py::test_template[test_two_problems_arrangement1] - Assert...
FAILED test_module.py::test_template[test_two_problems_arrangement2] - Assert...
FAILED test_module.py::test_template[test_four_problems_arrangement] - Assert...
FAILED test_module.py::test_template[test_five_problems_arrangement] - Assert...
FAILED test_module.py::test_template[test_only_digits] - ValueError: invalid ...
FAILED test_module.py::test_template[test_two_problems_with_solutions] - Asse...
FAILED test_module.py::test_template[test_five_problems_with_solutions] - Ass...
========================= 7 failed, 3 passed in 0.20s ==========================