gap-packages / RAMEGA

This is a GAP package for random methods for group algebras
https://gap-packages.github.io/RAMEGA/
Other
2 stars 2 forks source link

Improving tests #15

Open olexandr-konovalov opened 2 years ago

olexandr-konovalov commented 2 years ago

After I've fixed CI in #14, one can run again automated tests and check code coverage. CodeCov now reports 80% coverage, what's quite good (to compare, GAP has 82%). Of course, one can look at CodeCov reports and add more tests, to ensure that more code is covered. However, I suggest to add more tests of the form of running some calculations using different methods (where available) for some collections of groups to see whether randomised methods produce same results.

For example, we can compare the exact and randomised calculations of the exponent of the normalised using group:

gap> n:=32;;
gap> t1:=List([1..NrSmallGroups(n)],i->RandomExponent(GroupRing(GF(2),SmallGroup(n,i)),100));;
[ 32, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
  4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 2 ]
gap> t2:=List([1..NrSmallGroups(n)],i->Exponent(PcNormalizedUnitGroup(GroupRing(GF(2),SmallGroup(n,i)))));;
gap> t1=t2;
true

In this example, t1 takes 10 seconds, and t2 20 seconds on my machine.

olexandr-konovalov commented 2 years ago

In addition, it seems that the only examples are for finite 2-groups over the field of 2 elements. It would be useful to extend tests on other groups, and other fields, and state limitations, if there are any.