+ 2
Python test suite problems
This testing suite only prints that the tests fail. Even though they are true. I would put the tests where the "#" symbols are and it returns the fail string every time for every test. I am testing if a string == string. yes, i am aware there are testing functions but i want to learn everything i can from scratch first. What can i change to make my 'True' tests print out the 'ok' string? Any help is appreciated https://code.sololearn.com/cG9JotOQimij/?ref=app
9 Answers
+ 2
What you have done wrong is what most beginners do.
In your function you are not returning anything, i.e. you have no return statement. Every function in Python that doesn't have a return statement returns None by default.
So if you break down
test(turn_clockwise("N") == "E")
It will become
test(None == "E")
which is False.
So instead of
print(ways[dir])
do
return ways[dir]
That will make the code work. Also remember from now on that print != return.
+ 2
Stared at your update for a minute and couldnt figure it out. What did you change?
+ 2
Check the parantheses count in line 9
+ 1
The error im running into is when i use it in Pyscript. When i test values in a function it will print the correct value, then tell me that the test failed. While it should say the test is ok.
+ 1
So there was an error? I still don't get what it is. Could you enlighten me?
+ 1
Alright been messing around with it in Pyscript. This is the function im testing:
def turn_clockwise(dir):
'''Takes a direction and goes to the next direction clockwise'''
ways={'N':'E', 'E':'S', 'S':'W', 'W':'N',}
print(ways[dir])
I still end up getting false. Is it because Im using strings?
+ 1
Just posted a picture of the interpretor
+ 1
Thats it! Thank you, very greatly appreciate you taking the time. Totally makes sense.
+ 1
Gotcha, thats honestly only for reference. But i can see how someone who knows what they're doing just sees it as extra characters in the way. Will do.