This isn't a complete PR (it only encompasses the first 01_combinatorial_logic section).
I am proposing that we colorize the PASS & FAIL to make them easier to visually scan.
I am proposing that we move the PASS & FAIL message to the front of each line for easier scanning, so that they align, and so that the file names always start at the same position.
I am also proposing using the $fatal return code to end execution. This should allow us to check in our "all_*" scripts when a particular test fails and choose to short circuit the rest if that occurs. This might be beneficial in not overwhelming students as well as always putting the failing information on the bottom of their console (avoiding scrolling). Short circuiting on non zero status code is not implemented, but should be trivial.
Finally, I am proposing that we add in a ++ as a "pulled from log" value so that we can print the INPUT, EXPECTED, and ACTUAL values from each test. I am structuring them somewhat like Python maps as I think most people are familiar with them.
It looks like the following (I have written passing code for the first 2, and the rest are still failures) =>
This isn't a complete PR (it only encompasses the first
01_combinatorial_logic
section).I am proposing that we colorize the PASS & FAIL to make them easier to visually scan.
I am proposing that we move the PASS & FAIL message to the front of each line for easier scanning, so that they align, and so that the file names always start at the same position.
I am also proposing using the $fatal return code to end execution. This should allow us to check in our "all_*" scripts when a particular test fails and choose to short circuit the rest if that occurs. This might be beneficial in not overwhelming students as well as always putting the failing information on the bottom of their console (avoiding scrolling). Short circuiting on non zero status code is not implemented, but should be trivial.
Finally, I am proposing that we add in a ++ as a "pulled from log" value so that we can print the INPUT, EXPECTED, and ACTUAL values from each test. I am structuring them somewhat like Python maps as I think most people are familiar with them.
It looks like the following (I have written passing code for the first 2, and the rest are still failures) =>