[ENHANCEMENT] Engine Tests and Rewrite
Describe the current behavior of what you're trying to improve. If your enhancement request related to a problem, please also describe the problem.
Currently, a large number of bugs trace back to an issue with the underlying engine within LEGUP. Looking through the tests, it appears only the rules within each puzzle are tested, while the engine is untested. The goal is to rethink the design of various parts of the engine so that they behave as expected when a puzzle uses them.
Here are the various parts of the engine that need to be tested:
- Proof Tree
- History (Adding, Deleting, Redo, etc.)
- Merging
- Puzzle Editor
- Puzzle Saver
- Puzzle Loader
Describe the improvement you'd like
We should have thorough tests for these parts of the engine. We should also have documentation for how each part of the engine works, which can be written while testing.
Describe alternatives you've considered
No response
Additional Context
No response
It looks like the tree is represented separately in the model and the view (Tree and TreeView). I'm going to see if I can get the view to display the tree based on the model rather than having a separate instance of the tree.