-
Notifications
You must be signed in to change notification settings - Fork 100
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
Replace HasDomain
to enable multi-argument edge case and domain tests
#415
Replace HasDomain
to enable multi-argument edge case and domain tests
#415
Conversation
fd76e4f
to
a03a5be
Compare
The improved edge case tests are showing some inputs where our results differ from spec, which is a great thing.
The C spec has a footnote: "Ideally, fmax would be sensitive to the sign of zero, for example fmax(−0.0, +0.0) would return +0; however, implementation in software might be impractical.", but based on a comment in our source for these functions, it sounds like IEEE may say something slightly different. Something to look into more, I can xfail these for now. Edit: opened #439 to track this. |
daad206
to
cf0d9a3
Compare
cf0d9a3
to
7788a3d
Compare
This should be nearly done, I just need to double check the test count logic. Cc @beetrees since this PR interacts with your recent changes. |
Oh no, we have a buf in fma on i686? Happens on both i586 and i686:
|
7788a3d
to
7028a91
Compare
HasDomain
with a dynamic call that supports multiple argumentsHasDomain
to enable multiple arguments for edge cases and domain tests
HasDomain
to enable multiple arguments for edge cases and domain testsHasDomain
to enable multi-argument edge case and domain tests
32c2652
to
8ba7388
Compare
I need to cut down the CI runtime somehow. Time reporting from #441 should help figure out what is taking so long. |
2ba42ee
to
eacb9f5
Compare
This also allows reusing the same generator logic between logspace tests and extensive tests, so comes with a nice bit of cleanup. Changes: * Make the generator part of `CheckCtx` since a `Generator` and `CheckCtx` are almost always passed together. * Rename `domain_logspace` to `spaced` since this no longer only operates within a domain and we may want to handle integer spacing. * Domain is now calculated at runtime rather than using traits, which is much easier to work with. * With the above, domains for multidimensional functions are added. * The extensive test generator code tests has been combined with the domain_logspace generator code. With this, the domain tests have just become a subset of extensive tests. These were renamed to "quickspace" since, technically, the extensive tests are also "domain" or "domain logspace" tests. * Edge case generators now handle functions with multiple inputs. * The test runners can be significantly cleaned up and deduplicated.
eacb9f5
to
2fab7e0
Compare
It would probably be nice to somehow reduce the number of iterations that run for bessel functions, since that is the biggest chunk of CI time. And we are still not testing #446 should eventually win some time back. |
This also allows reusing the same generator logic between logspace tests and extensive tests, so comes with a nice bit of cleanup.
Changes:
CheckCtx
since aGenerator
andCheckCtx
are almost always passed together.domain_logspace
tospaced
since this no longer only operates within a domain and we may want to handle integer spacing.