-
Notifications
You must be signed in to change notification settings - Fork 160
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
Defining and revising assertion levels #564
Comments
@hulpke - thanks! My comments:
|
|
These are guidelines, not rigid rules, and it is very easy to change the level of an assertion in a fix if it is found to be too low (or too high). Tests should pass at all assertion levels up to 4, although 4 might take a long time and package and library code should be tested at all these levels at some stage before a release. Based on the criteria above, level 1 would be appropriate for the continuous integration testing run on every PR. Level 2 should be sensible for nightly testing and levels 3 and 4 are probably saved for release preparation. Level 5 allows assertions that may only be appropriate in specific contexts, so is never used for automated testing. |
However, I don't think this needs to be in 4.9 -- we want to get that out soon, and there are other more important things we should take care of first. So I propose to remove the milestone, or change it to 4.10. |
@fingolfin agree - was going to suggest the same by same reasons. Will put 4.10. |
This is prompted by @stevelinton 's remark in #562:
Since the standard tests now use assertions we should define what the different assertion levels achieve. As a start for discussion (copying from the suggestion for level 1):
Level 1: The tests should not cause more than 10% overhead in runtime and should not trigger calculations that might have side-effects, such as changing the state of the random number generator, storing attributes or setting properties. (This would imply that even an element test or a test for a group being solvable should be assertion level 2).
Level 2: Tests may cause side-effects but should not be expected to cause more than 50% overhead in runtime. It should be possible to run even longer-runtime tests with this assertion level being set.
Level 3: Tests that may increase runtime significantly, but will be safe to run (i.e. they cannot corrupt data structures or assume a set-up of data structures that is more specific than documented.
Level 5: Tests that may assume extra properties of the data structures or objects used which may not hold in general.
By this the homomorphism assertions should move to level 3 (and many other assertions to level 2)
The text was updated successfully, but these errors were encountered: