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

All kinds of errors in tst/testinstall/opers #970

Closed
hulpke opened this issue Dec 2, 2016 · 10 comments
Closed

All kinds of errors in tst/testinstall/opers #970

hulpke opened this issue Dec 2, 2016 · 10 comments

Comments

@hulpke
Copy link
Contributor

hulpke commented Dec 2, 2016

after merging the master branch, I get all kinds of errors in files in testinstall/opers, (and these also cause tests for #968 to fail).

For example (after an update to the master branch)

Diff in /Users/hulpke/gap4/tst/testinstall/opers/ComplementClassesRe
presentatives.tst:25
Input is:
Set(ComplementClassesRepresentatives(G, N), H -> H^G)=Set([ Group([ (1,2,5)(3,
4)(6,7), (1,4)(2,5,3)(6,7) ])^G, Group([ (2,5)(7,8), (1,3,5,4)(6,10,9,7) ])^G,
Group([ (2,3,4)(6,8,10), (1,2)(3,5,4)(6,10,7)(8,9) ])^G ]);
Expected output:
true
But found:
Error, cannot compute complements if both N and G/N are nonsolvable

Why do these rather specific tests need to be part of testinstall (and not of teststandard)?

Why was this merged if there are still obvious errors arising?

@hungaborhorvath
Copy link
Contributor

I do not see any diffs or errors on my current master branch. Are you sure the method from #563 is in your grppccom.gi?

I was the one who put these into testinstall in order to have better code coverage of ComplementClassesRepresentatives. The test in question uses the new method introduced in #563. This is the smallest example for which it makes sense to use this method (otherwise the already existing methods are faster).

Nevertheless, it probably should be moved to teststandard and testinstall could check some smaller examples with the particular method.

@hungaborhorvath
Copy link
Contributor

I have taken a look at the diffs and most of them are coming from functions I updated in #563 and #763. Could the problems in #968 maybe be resolved by rebasing to the current master?

@olexandr-konovalov
Copy link
Member

I've checked that in the currently running nightly test of master branch with the set of packages from GAP 4.8.6 testinstall.g runs with zero diffs. It took 43s without packages and 75s with packages (and the slowdown is worrying).

@hulpke
Copy link
Contributor Author

hulpke commented Dec 2, 2016

I'm at a loss here. I have now reset the branch to upstream/master and cherry-picked the changes on it again. It goes from my additions' branch onto gap-system:master, to no avail. The error is triggered by the travis tests (so cannot involve anything I messed up on my computer) and the diff-listing shows that the issue that causes the error for complementClassesRepresentative` cannot have been affected by the changes.

@hulpke
Copy link
Contributor Author

hulpke commented Dec 2, 2016

Just to add the remark that even creating a new branch off master causes the same problems (#972)

@olexandr-konovalov
Copy link
Member

I may be onto something, and it seems to be package-dependent. Investigation in progress.

@olexandr-konovalov
Copy link
Member

Nothing so far. What I've seen is

########> Diff in /data/gap-jenkins/workspace/GAP-master-test/GAPCOPTS/64build\
/GAPTARGET/standard/label/kovacs/GAP-master-snapshot/tst/teststandard/grpperm.\
tst:80
# Input is:
Length(ConjugacyClassesSubgroups(g));
# Expected output:
2048
# But found:
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `ExponentsOfPcElement' on 2 arguments
########

on our new slave with all packages loaded. But I can't reproduce this after several runs of grpperm.tst alone. Maybe random methods interfere and the calculation goes into some execution branch not covered by tests otherwise...

@hungaborhorvath
Copy link
Contributor

@hulpke I have played around with your branch a little bit. I might be completely off here (in which case I am sorry), but to me the culprit seems to be the following:

gap> G := Group([ (6,7,8,9,10), (8,9,10), (1,2)(6,7), (1,2,3,4,5)(6,7,8,9,10) ]);;
G := Group([ (6,7,8,9,10), (8,9,10), (1,2)(6,7), (1,2,3,4,5)(6,7,8,9,10) ]);;
gap> N := Group((6,7,8),(6,7,8,9,10));;
gap> ConjugacyClassesSubgroups(G);; time;
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
The 1st argument is 'fail' which might point to an earlier problem
Error, no 1st choice method found for `SubgroupsOrbitsAndNormalizers' on 3 arguments at /home/ghorvath/work/tmp/hulpke/lib/methsel2.g:241 called from
SubgroupsOrbitsAndNormalizers( s[2], NormalSubgroups( s[1] ), false 
 ) at /home/ghorvath/work/tmp/hulpke/lib/grplatt.gi:2642 called from
SubdirectSubgroups( n 
 ) at /home/ghorvath/work/tmp/hulpke/lib/grplatt.gi:2800 called from
SubgroupsTrivialFitting( G 
 ) at /home/ghorvath/work/tmp/hulpke/lib/grplatt.gi:911 called from
LatticeSubgroups( G 
 ) at /home/ghorvath/work/tmp/hulpke/lib/grplatt.gi:208 called from
<function "unknown">( <arguments> )
 called from read-eval loop at *stdin*:4
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> 

Now, here LatticeSubgroups is called at line 208 (grplatt.gi), which calls SubgroupsTrivialFitting at line 911, which calls SubdirectSubgroups at line 2800, which calls SubgroupsOrbitsAndNormalizers(s[2], NormalSubgroups(s[1]), false) at line 2642, and this is what errors with no method found. Maybe the reason is that s[2] here is fail? This is due to line 2641. Break loop says here that u is the alternating group on 5 elements, j = Group( [ (1,2,3,4,5) ] )^G, and Stabilizer(j) = fail. Now, I am not even sure how Stabilizer can return fail, but could it maybe because of some of the new modifications?

@hulpke
Copy link
Contributor Author

hulpke commented Dec 3, 2016

@hungaborhorvath
Thank you very much for this identification. Indeed fixing this removes the errors (and I'm thus closing the issue). Apologies for pointing to other code.

I'm just completely puzzled why the test did not complain about a subgroup lattice computation, but actually gives the subsequent command (which has nothing to do with subgroup lattice)?

In any case -- thank you very much.

@hulpke hulpke closed this as completed Dec 3, 2016
@olexandr-konovalov
Copy link
Member

@hulpke also, I can't see the problem with ExponentsOfPcElement in Length(ConjugacyClassesSubgroups(g)); after re-running the tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants