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

Change OcrNumbersTest to use optionals #848

Closed
wants to merge 2 commits into from

Conversation

citizen428
Copy link

@citizen428 citizen428 commented Dec 22, 2024

IMO the current tests for this exercise do not match the description in instructions.md:

If the input is the correct size, but not recognizable, your program should return '?'
If the input is the incorrect size, your program should return an error.

However, the relevant tests look like this:

  test(
    "Input with a number of lines that is not a multiple of four raises an error") {
    pending
    OcrNumbers.convert(List(" _ ",
                            "| |",
                            "   ")) should be("?")
  }

  test(
    "Input with a number of columns that is not a multiple of three raises an error") {
    pending
    OcrNumbers.convert(List("    ",
                            "   |",
                            "   |",
                            "    ")) should be("?")

This feels doubly wrong because the tests neither test for returning an error (as indicated in the instructions) nor do they test for raising an error (as per the test descriptions).

So this PR changes all tests to use Optional[String] as the return type, with None being asserted for the two tests listed above.

I also think we should add two additional tests: both List() and List("", "", "", "") should IMO return None, not "?", so I added those in a second commit.

I understand this will make all existing solutions fail the test suite when they re-run, but I think it's worth it. It's also more consistent with other exercises, which use optionals in a similar way (e.g. Grains, Hamming Distance, Largest Series Product, Queen Attack.)

Copy link

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

Hello 👋 Thanks for your PR.

This repo does not currently have dedicated maintainers. Our cross-track maintainers team will attempt to review and merge your PR, but it will likely take longer for your PR to be reviewed.

If you enjoy contributing to Exercism and have a track-record of doing so successfully, you might like to become an Exercism maintainer for this track.

Please feel free to ask any questions, or chat to us about anything to do with this PR or the reviewing process on the Exercism forum.

(cc @exercism/cross-track-maintainers)

@github-actions github-actions bot closed this Dec 22, 2024
Copy link

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!

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.

1 participant