refactor: do some DRY for full eval tests #1238
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We refactor many of the interpreter and step evaluator full evaluation tests by moving the programs we want to evaluate into
primer-testlib
. Note that not all tests are amenable to this refactoring: some are too implementation-specific, and some are so simple that a refactoring wouldn't buy us much.We could do some additional DRY by creating a test monad that abstracts away the differences between the two evaluation implementations, and then rewriting most of the tests to use this abstracted test framework. However, it's not clear whether it would be worth the effort, as it would be a fairly significant amount of work and would largely exchange boilerplate for boilerplate.
Note that this commit is intended to be a pure refactoring: no functional changes have been made to the tests, nor have any tests been added or removed.