Updated puzzles to add persistent tags, hashed the exported solved state of the board, and updated batch grader to new format.
Type of change
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Enhancement (improvement to an already existing feature)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
How Has This Been Tested?
Step through normal workflow: create new puzzle, save and export, then open new puzzle, make changes, save and exit. Check file for correct persistent tag, then reopen and solve, export one more time and ensure correct data and format. Finally, run autograder over solved and unsolved puzzles to ensure un-hashing correctness.
Testing only works with updated puzzles with new export features. Old puzzles will have to be updated to new format, but will not break the batch grader if graded (they will simply print "Error" in the results).
Checklist:
[X] I have performed a self-review of my code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation (if applicable)
[X] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
Description
Updated puzzles to add persistent tags, hashed the exported solved state of the board, and updated batch grader to new format.
Type of change
How Has This Been Tested?
Step through normal workflow: create new puzzle, save and export, then open new puzzle, make changes, save and exit. Check file for correct persistent tag, then reopen and solve, export one more time and ensure correct data and format. Finally, run autograder over solved and unsolved puzzles to ensure un-hashing correctness. Testing only works with updated puzzles with new export features. Old puzzles will have to be updated to new format, but will not break the batch grader if graded (they will simply print "Error" in the results).
Checklist: