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

Added new practice exercises #37

Open
wants to merge 59 commits into
base: main
Choose a base branch
from
Open

Added new practice exercises #37

wants to merge 59 commits into from

Conversation

gvrooyen
Copy link
Contributor

@gvrooyen gvrooyen commented Sep 5, 2024

This PR adds the following practice exercises:

  • Collatz Conjecture
  • Darts
  • Hamming
  • Queen Attack
  • Resistor Color Duo
  • Space Age
  • RNA Transcription
  • Eliud's Eggs
  • Raindrops
  • DnD Character
  • Perfect Numbers

"Grains" was simplified to have a simple boolean error condition, rather than two enumerated error states.

Completed the hello-world and leap exercises.
Updated configuration.
Completed the difference-of-squares practice exercise, and added the
`bin/format-all.sh` script that recursively searches for .odin files and
runs `odinfmt` on them.
All source files have been reformatted with the `odinfmt.json` spec.
`bin/format-all.sh` is now run automatically on commit.
The `test.yml` GitHub workflow now pushes any changes that it makes, so
that they persist in the repo.
`test.yml` now only attempts a commit and push if the automated
formatting actually changed any files.
The verify-exercises script now runs the individual test for both
concept and practice exercises, and is the default in the GitHub
workflow.
Tests were lifted from the Gleam track.
- The README now contains more thorough instructions on how to add a new
  exercise.
- Fixed a variable name in the test runner that caused the "test all
  solutions" loop to run multiple times when verifying solutions.
- Fixed bin/run-test.sh so that it doesn't delete the stub solution when
  a test fails.
- Restored exercises, and added a NotImplemented error condition for the
  stubs.
- Ran the code formatter on source files.
- Rehaul of the README to follow Python's example.
The workflow now uses a fixed commit hash to pull a specific release of
Odin. We now use Ubuntu 22.04 which has the libffi8 dependency, and add
clang as the only other dependency.
Added a check to bin/run-test.sh so that verifies that the stub solution
does *not* pass any tests. Fixed hello-world.odin to actually be a stub.
- Improved bin/run-test.sh to add more visible color coding to the
  output.
- Replaced NotImplemented error codes with a compile-time panic for
  procedures that have not yet been implemented.
- Fixed stubs that were actually complete examples.
- Exercises' unit tests were modified so that only a minimal subset of
  tests are initially enabled; the rest are skipped.
- The test runner was modified to automatically unskip all test cases
  before running the tests.
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