Thanks for your comment. I actually didn't forget the validation but intentionally left it out. As you correctly quoted the description, the goal was to write a function that "takes a non-negative integer." This implies that the argument cannot be negative. You may also have noticed that my implementation doesn't handle values greater than 359999, and it's for the same reason. The assignment says, "The maximum time never exceeds 359999." The author of this kata also didn't specify expected behavior for those cases, nor did they provide tests.
Having said all that, I agree that this code isn't production ready without the validation. But if it were up to me, I'd ensure that no invalid values can be passed (e.g., via static analysis or a dedicated value object) to eliminate the need for validation in this function altogether.
Well, if I got you right I'd say that this metadata doesn't belong to the version. It sounds more like we're talking about a Release that consists of a Version and maybe some Metadata or even more specific objects.
The expected and actual values of the assertion in the PHP version are in the wrong order.
This leads to errors that might confuse the beginners this kata is aimed at.
Failed at paperwork(5, -5)
Failed asserting that 0 matches expected -25.
Expected: -25
Actual : 0
Hey Farid,
Thanks for your comment. I actually didn't forget the validation but intentionally left it out. As you correctly quoted the description, the goal was to write a function that "takes a non-negative integer." This implies that the argument cannot be negative. You may also have noticed that my implementation doesn't handle values greater than 359999, and it's for the same reason. The assignment says, "The maximum time never exceeds 359999." The author of this kata also didn't specify expected behavior for those cases, nor did they provide tests.
Having said all that, I agree that this code isn't production ready without the validation. But if it were up to me, I'd ensure that no invalid values can be passed (e.g., via static analysis or a dedicated value object) to eliminate the need for validation in this function altogether.
Well, if I got you right I'd say that this metadata doesn't belong to the version. It sounds more like we're talking about a
Release
that consists of aVersion
and maybe someMetadata
or even more specific objects.Thanks for your comment. Can you elaborate on why you think creating a new object for each version is a bad idea?
I just added the missing
$
to the argument of each function plus some type hints.Not sure why the tests are failing now.
Yes, sorry. I mixed up "Test Cases" and "Sample Test Cases". I just forked and resubmitted.
PHP translation
Thanks. I'll try that
So, how does the approval process work?
Can only the author of the kata approve my translation? 🤔
The expected and actual values of the assertion in the PHP version are in the wrong order.
This leads to errors that might confuse the beginners this kata is aimed at.