-
Notifications
You must be signed in to change notification settings - Fork 126
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
booktest: add error checking for non-jlcon files also on master #4209
Conversation
This uncovered a new error in julia> for i in 1:8, j in 1:number_of_small_groups(i)
G = small_group(i, j)
if is_abelian(G)
continue
end
QG = QQ[G]
ZG = integral_group_ring(QG)
println(i, " ", j, " ", describe(G), ": ", locally_free_class_group(ZG))
end
6 1 S3: Z/1
ERROR: ArgumentError: G1 and G2 are not compatible
Stacktrace:
[1] #_check_compatible#1398
@ /home/datastore/lorenz/software/julia/Oscar.jl/src/Groups/types.jl:683 [inlined]
[2] _check_compatible
@ /home/datastore/lorenz/software/julia/Oscar.jl/src/Groups/types.jl:681 [inlined]
[3] ==
@ /home/datastore/lorenz/software/julia/Oscar.jl/src/Groups/GAPGroups.jl:376 [inlined]
[4] isequal
@ ./operators.jl:134 [inlined]
[5] _isequal (repeats 2 times)
@ ./tuple.jl:536 [inlined]
[6] isequal(t1::Tuple{QQField, PcGroup, typeof(*)}, t2::Tuple{QQField, PcGroup, typeof(*)})
@ Base ./tuple.jl:533
[7] ht_keyindex(h::Dict{Tuple{Ring, Any, Any}, WeakRef}, key::Tuple{QQField, PcGroup, typeof(*)})
@ Base ./dict.jl:249
[8] haskey
@ ./dict.jl:548 [inlined]
[9] (::AbstractAlgebra.var"#50#51"{Hecke.var"#155#158"{…}, AbstractAlgebra.WeakValueDict{…}, Tuple{…}})()
@ AbstractAlgebra /home/datastore/lorenz/software/julia/depot/packages/AbstractAlgebra/DRky3/src/WeakValueDict.jl:544
[10] lock(f::AbstractAlgebra.var"#50#51"{Hecke.var"#155#158"{…}, AbstractAlgebra.WeakValueDict{…}, Tuple{…}}, l::ReentrantLock)
@ Base ./lock.jl:232
[11] lock
@ /home/datastore/lorenz/software/julia/depot/packages/AbstractAlgebra/DRky3/src/WeakValueDict.jl:512 [inlined]
[12] get!
@ /home/datastore/lorenz/software/julia/depot/packages/AbstractAlgebra/DRky3/src/WeakValueDict.jl:542 [inlined]
[13] get_cached!
@ /home/datastore/lorenz/software/julia/depot/packages/AbstractAlgebra/DRky3/src/AbstractAlgebra.jl:159 [inlined]
[14] _
@ /home/datastore/lorenz/software/julia/depot/packages/Hecke/7wI0D/src/AlgAss/Types.jl:156 [inlined]
[15] GroupAlgebra
@ /home/datastore/lorenz/software/julia/depot/packages/Hecke/7wI0D/src/AlgAss/Types.jl:155 [inlined]
[16] #group_algebra#4266
@ /home/datastore/lorenz/software/julia/depot/packages/Hecke/7wI0D/src/AlgAss/AlgGrp.jl:72 [inlined]
[17] group_algebra
@ /home/datastore/lorenz/software/julia/depot/packages/Hecke/7wI0D/src/AlgAss/AlgGrp.jl:71 [inlined]
[18] getindex(K::QQField, G::PcGroup)
@ Hecke /home/datastore/lorenz/software/julia/depot/packages/Hecke/7wI0D/src/AlgAss/AlgGrp.jl:93
[19] top-level scope
@ ./REPL[2]:6
Some type information was truncated. Use `show(err)` to see complete types. The error (from #3166) is not in 1.0 which is why this only happens here and not on the other booktest PR. cc: @ThomasBreuer |
This is the reason why one might want to have a non-throwing |
What happens here is that the constructor for the group algebra The fact that this caching mechanism tries to compare two groups that are completely unrelated seems to contradict @fieker's verdict that such a call of |
The groups are compared using |
Then we can recommend to write all |
I am not sure I'd want to recommend that style, it definitely is not what we do in AA and Nemo so far. In any case, we need a solution now, and the simple one is to add I've pushed such methods to this PR now, let's see if they help. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4209 +/- ##
=======================================
Coverage 84.59% 84.60%
=======================================
Files 631 631
Lines 84906 84948 +42
=======================================
+ Hits 71830 71869 +39
- Misses 13076 13079 +3
|
Thanks @fingolfin. I think eventually the cache should use |
Julia Base has |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me now but it is still marked as draft (@benlorenz ?)
…r-system#4209) * booktest: cleanup aux code * booktest: add error-detection for non-jlcon files * Add isequal methods for GAPGroup, BasicGAPGroupElem --------- Co-authored-by: Max Horn <max@quendi.de>
from #4205