You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now, in order to run ring conformance tests in the REPL (e.g. to debug issues with them), one has to do something like this:
import AbstractAlgebra, Test
include(joinpath(pathof(AbstractAlgebra), "..", "..", "test", "Rings-conformance-tests.jl"))
before invoking e.g. test_Field_interface_recursive.
In many cases this then runs into an error because actually you also need to find and run one or more test_elem methods which are used by the conformance tests for the particular ring you are interested in.
All of this could be solved if we integrated Rings-conformance-tests.jl directly into AbstractAlgebra, so that its tests are available after using AbstractAlgebra.
This would require adding Test as a dependency. Doesn't seem like a major issue to me, but even that could be avoided by putting the code into a package extension (which would imply upping the minimal required Julia version to at least 1.9, IIRC).
Then packages like Nemo could do the same, and implement test_elem methods directly in the package (while we are at it, we could also rename test_elem, it was a bit of a spur of the moment decision to use that name -- as usual, naming things well is one of the hardest problems...)
Afterwards, you could just do
using Nemo, Test
test_Field_interface_recursive(GF(5))
or whatever, and it would "just work".
(This is idea is not new, and at the very least @lgoettgens also came up with essentially the same idea. But I realized now that we don't have an issue.)
The text was updated successfully, but these errors were encountered:
I am happy to look into doing this. I would try to first do this in a backwards-compatible way, i.e. that this still works using the current include in all julia versions back to 1.6 (so that we can update our downstream packages in a non-breaking way).
We could follow the Julia docs and use Requires.jl for Julia 1.6-1.8, and package extensions above.
@lgoettgens that kind of backwards compatibility would indeed be useful. Presumably this would mean test/Rings-conformance-tests.jl in AA stays but is changed to something like this:
using AbstractAlgebra.ConformanceTests
and export statements in there would make available test_elem, test_Ring_interface etc.
Right now, in order to run ring conformance tests in the REPL (e.g. to debug issues with them), one has to do something like this:
before invoking e.g.
test_Field_interface_recursive
.In many cases this then runs into an error because actually you also need to find and run one or more
test_elem
methods which are used by the conformance tests for the particular ring you are interested in.All of this could be solved if we integrated
Rings-conformance-tests.jl
directly intoAbstractAlgebra
, so that its tests are available afterusing AbstractAlgebra
.This would require adding
Test
as a dependency. Doesn't seem like a major issue to me, but even that could be avoided by putting the code into a package extension (which would imply upping the minimal required Julia version to at least 1.9, IIRC).Then packages like Nemo could do the same, and implement
test_elem
methods directly in the package (while we are at it, we could also renametest_elem
, it was a bit of a spur of the moment decision to use that name -- as usual, naming things well is one of the hardest problems...)Afterwards, you could just do
or whatever, and it would "just work".
(This is idea is not new, and at the very least @lgoettgens also came up with essentially the same idea. But I realized now that we don't have an issue.)
The text was updated successfully, but these errors were encountered: