Questions: https://github.com/regehr/assert_quiz/blob/master/assert_quiz.md
- bad, should handle error sensibly
- bad, debug builds don't even alloc
- bad, should handle error sensibly
- ?, assert ok, but code around clearly bad: the hash_function has no idea what lenght is, and no modulo done after
- bad, should handle error sensibly
- kinda ok. You probably want a way to turn off expensive assertions, though. This way you can run prog with all asserts on small tests, and with cheap asserts on big tests (an with no asserts in release -- if you so fancy).