Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor property generation & testing #73

Open
byorgey opened this issue Dec 5, 2017 · 3 comments
Open

Refactor property generation & testing #73

byorgey opened this issue Dec 5, 2017 · 3 comments
Labels
C-Project A larger project that may take multiple days. S-Moderate Moderate importance U-Error Reporting U-Testing Z-Refactoring Z-Student Good project for a student.

Comments

@byorgey
Copy link
Member

byorgey commented Dec 5, 2017

e.g. currently desugaring happens for every single test! There should be a desugaring pass that happens before tests are run. Desugaring can also include translating special properties into universally quantified ones for randomized testing (but keeping the special names around for printing results).

The way we are returning results from testing is also silly, we should cleanly separate the results from printing messages.

@byorgey byorgey added C-Project A larger project that may take multiple days. U-Testing labels Apr 18, 2018
@byorgey
Copy link
Member Author

byorgey commented Jun 24, 2020

This should happen as part of the Prop extension (#217). Properties will no longer be a separate syntactic category, but just terms of type Prop.

@byorgey
Copy link
Member Author

byorgey commented Feb 28, 2022

Well, it didn't happen (at least not completely) as part of #217 . The next step is to just look through the code and make a plan for how to clean things up.

@byorgey
Copy link
Member Author

byorgey commented Apr 19, 2022

Here is the current organization of code related to properties:

  • Disco.Property has some utility functions for generating samples and inverting results.
  • Disco.Interpret.CESK defines ensureProp, testProperty, runTest, + a few other related utility functions. They call CESK stuff (e.g. runTest calls eval which calls runCESK) and in turn CESK evaluation of e.g. holds will call testProperty.
  • Disco.Interactive.Commands defines runAllTests, which currently returns Sem r Bool; want to change it to return a summary of results instead of a Bool. Also has handleTest which calls runTest.
    • Both the above mentioned use specific numbers of examples (50 and 100) which we ought to make configurable somehow.

Edit: this has likely changed since I wrote that comment. First task would be to just get a survey of how the code is currently organized.

@byorgey byorgey added the Z-Student Good project for a student. label Oct 17, 2024
@byorgey byorgey changed the title Redesign property generation & testing Refactor property generation & testing Jan 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Project A larger project that may take multiple days. S-Moderate Moderate importance U-Error Reporting U-Testing Z-Refactoring Z-Student Good project for a student.
Projects
None yet
Development

No branches or pull requests

1 participant