Add deterministic property-based regression suite - #29
Conversation
| # The standard block generators commute with the block-diagonalized | ||
| # representation. Conjugate them back so that this function returns the | ||
| # centralizer in the coordinates of the representation supplied by the | ||
| # caller. |
There was a problem hiding this comment.
This is a breaking change. Maybe no-one is using this and it's fine. It certainly makes more sense to use the original coordinates though.
| InstallGlobalFunction( GroupSumBSGS, function(G, summand) | ||
| local H, n, chain, groups, m, sum, i, cosets, iso, zero, g, S, right_reps; | ||
|
|
||
| if IsTrivial(G) then |
There was a problem hiding this comment.
I mean sure but this is never going to happen...
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #29 +/- ##
===========================================
+ Coverage 54.39% 66.95% +12.56%
===========================================
Files 25 25
Lines 1355 1368 +13
===========================================
+ Hits 737 916 +179
+ Misses 618 452 -166
🚀 New features to boost your workflow:
|
| # All projector calculations below act on vectors by matrices. Preserve | ||
| # the public convenience of accepting permutation representations by | ||
| # converting once and then consistently using the linear representation. | ||
| rho := ConvertRhoIfNeeded@(rho); |
There was a problem hiding this comment.
naming of the function should be improved - convert permutation to matrix representation would be better
|
|
||
| InstallGlobalFunction( IsOrthonormalSet, function(S, prod) | ||
| return ForAll(S, v1 -> ForAll(S, function(v2) | ||
| if v1 = v2 then |
There was a problem hiding this comment.
You know this actually isn't even a bug necessarily, it just assumes that S is really a set and can't contain duplicates. But if it's a list of 2 of the same vector, it'll come out orthonormal even though two of the same vector are obviously not orthonormal - this is because we compare v1 = v2
GAP must have a Set type or something. Using indexes works better as a solution anyway.
More and stronger types are needed!
Summary
Literature basis
The suite follows certification and use-case invariants discussed in RepnDecomp, RepLAB, symmetry-reduced SDP, certified decomposition, and symmetric-group decomposition literature. Links and the mapping to tested properties are documented in tst/README.md.
Verification
Both test modes pass 11 files with zero failures.