Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
Yes, I initially assumed global variables because this is one of the most common cause of complaints about "works for me but not here", and additionally I misunderstood the "there is exact single input and exact single output" part. Only later I checked your solution and found actual bug.
Ooh, dam… Yeah, I haven't coded in C++ for quite a while, I was absolutely sure arrays work like vectors in terms of pre-initialization (vectors are initialized to default values). Thank you!
You still misunderstood me here: I did copy all 10 of the tests, that's the main point of confusion.
The problem here (with uninitialized values) are the compiler settings. Although, it is still weird that I'm not seeing this, because I'm running locally with
-fsanitize=address,undefined
, so I should've gotten a warning about uninitialized values. Weird…This is wrong, because if there is 10 basic tests, Codewars run all 10 of them. If you run only one of them locally, you will not detect issues like, for example, use of stale values of global/static variables (I am not saying that this is your problem, but it's one of the reasons when users complain that their solution works locally, but not on CW).
Specifically for cases like this one, when users blame their problems on the platform instead on their own code, I ceated a bot which helps beginners. I run it on your solution and it said:
PS. I usually try to avoid spoilers when supporting users but this bug might be indeed difficult to reproduce, and I think it's worth to close the argument sooner than later)
Sorry, there seems to be misunderstanding. Let me clarify: the task has "basic" and "random" tests. There are 10 "basic" tests, and you can copy them. The tests are just "run function with exact input and compare to the expected output". That is to say:
It's impossible to "run them differently", at least not by mistake. There nothing to "run differently", there is exact single input and exact single output.
This is not a valid conclusion, but it's very often made by beginners. Problem is how you run your solution locally, because you run it differently than the site. What you need to try is to run your solution more than once for different inputs.
I mean, I have copied "basic tests" and ran them locally. They all return the expected results. There may be a flaw in my solution, but what I see here is that site result is different from my result on the same input, which is a problem with the site.
The site doesn't run code like that.
Your code has a different flaw you have not yet detected.
There seems to be a bug: after sending solution it says no tests are passing, but then if I copy the "basic tests" and run with the same code on my computer, I get the answers tests expect. It would seem like site has cached my wrong code (I had mistakenly used
a == b == c
in C++, forgot it doesn't work that way there, changed toa == b && a == c
), and despite it showing the correct code it apparently runs the older incorrect version…?Please, don't post solutions in Discourse. Already told you that, didn't I?
This comment is hidden because it contains spoiler information about the solution
Merged.
C Fork
addresses this and other testing concerns
Actual and expected are switched in assertion messages in C.
Oh, found my error and sorted it out! Thanks for the help
Loading more items...