-
-
Notifications
You must be signed in to change notification settings - Fork 546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should the value of error
be mutable?
#1709
Comments
I'd vote: it's mutable, except if the mutation would change the total set of errors in an exercise. Using your example, I'd expect a Rust test generator to come up with enum Error {
ZeroIsRejectedNotANaturalNumber,
ClassificationIsOnlyPossibleForNaturalNumbers,
} If a PR updates the text on all such errors, we now have enum Error {
ZeroIsRejectedNotAPositiveInteger,
ClassificationIsOnlyPossibleForPositiveIntegers,
} The set of errors, and the semantics, hasn't changed; only the enum's label. I think this is fine. If, on the other hand, we rewrite things to Make sense? |
It may help to compare the implementations of one exercise involving errors across tracks to find out if they'd be breaking or not. I don't know if any tracks check for an exact error message for example. |
Okay, I think we have an agreement that the |
JavaScript often checks for an exact message; especially in older exercises. In newer exercises we usually check for class name, or better, provide it via the stub. |
Example
In
perfect-numbers
we have this test case:problem-specifications/exercises/perfect-numbers/canonical-data.json
Lines 121 to 130 in 8df6cb2
And we notice (see #1691) that we would like to make this change:
We seem to have decided that
description
is allowed to mutate when the "meaning is unchanged" (that is, we do not add areimplements
test case for e.g. a simpledescription
-only typo fix).The question is: should the contents of an
error
also be considered mutable when the "meaning is unchanged", or should that require a new test case?Discussion
My initial opinion is something like:
description
should be mutable if we don't change the "meaning" of the test.error
is similar to the "description" of the error. In the limiting case, it seems messy to add a new test case just to fix a typo in anerror
value.error
value should similarly be allowed when the "meaning is unchanged".Drawbacks:
tests.toml
didn't change.expected
doesn't change, but make a special case for anerror
-only change.The text was updated successfully, but these errors were encountered: