Skip to content
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

Fixed tests that disallowed correct answers #1896

Closed
wants to merge 1 commit into from

Conversation

ChaiTRex
Copy link

@ChaiTRex ChaiTRex commented Apr 6, 2024

The tests assume that there can be only one way to solve the problem: if the number is even, divide it by 2 and if the number is odd, multiply it by 3 and add 1.

Multiplying by 3 and adding 1 can cause an overflow, which the tests accommodate by allowing None as a correct response whenever u64 overflows occur.

The problem is that None is considered to be the only correct response in that case, when every nonzero u64 has a correct answer that can be put into Some. For example, overflow can be avoided by converting the input u64 into a u128 and then getting the result using u128 arithmetic.

This commit corrects the tests so that either None or the correct answer is allowed when u64 overflow can occur. All code that already passed the old tests will also pass the corrected tests.

The tests assume that there can be only one way to solve the problem: if the number is even, divide it by 2 and if the number is odd, multiply it by 3 and add 1.

Multiplying by 3 and adding 1 can cause an overflow, which the tests accommodate by allowing `None` as a correct response whenever `u64` overflows occur.

The problem is that `None` is considered to be ***the only*** correct response in that case, when every nonzero `u64` has a correct answer that can be put into `Some`. For example, overflow can be avoided by converting the input `u64` into a `u128` and then getting the result using `u128` arithmetic.

This commit corrects the tests so that either `None` or the correct answer is allowed when `u64` overflow can occur.
Copy link
Contributor

github-actions bot commented Apr 6, 2024

Hello. Thanks for opening a PR on Exercism 🙂

We ask that all changes to Exercism are discussed on our Community Forum before being opened on GitHub. To enforce this, we automatically close all PRs that are submitted. That doesn't mean your PR is rejected but that we want the initial discussion about it to happen on our forum where a wide range of key contributors across the Exercism ecosystem can weigh in.

You can use this link to copy this into a new topic on the forum. If we decide the PR is appropriate, we'll reopen it and continue with it, so please don't delete your local branch.

If you're interested in learning more about this auto-responder, please read this blog post.


Note: If this PR has been pre-approved, please link back to this PR on the forum thread and a maintainer or staff member will reopen it.

Copy link
Contributor

github-actions bot commented Apr 6, 2024

This PR touches files which potentially affect the outcome of the tests of an exercise. This will cause all students' solutions to affected exercises to be re-tested.

If this PR does not affect the result of the test (or, for example, adds an edge case that is not worth rerunning all tests for), please add the following to the merge-commit message which will stops student's tests from re-running. Please copy-paste to avoid typos.

[no important files changed]

For more information, refer to the documentation. If you are unsure whether to add the message or not, please ping @exercism/maintainers-admin in a comment. Thank you!

@github-actions github-actions bot closed this Apr 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant