From a99471fc291063c92b6b1e2ae7d3a38832958da8 Mon Sep 17 00:00:00 2001 From: Kamil Zabielski <50334623+limakzi@users.noreply.github.com> Date: Wed, 3 Apr 2024 00:14:27 +0200 Subject: [PATCH] fix: Fix missing local-variable (#6) * fix: Fix missing local-variable * feat: Add more tests and transposed method --- lib/utils.gd | 5 +++++ lib/utils.gi | 7 ++++++- tst/test_utils_hasproperty_a3.tst | 13 +++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tst/test_utils_hasproperty_a3.tst diff --git a/lib/utils.gd b/lib/utils.gd index c2777f3..8365212 100644 --- a/lib/utils.gd +++ b/lib/utils.gd @@ -27,6 +27,11 @@ DeclareGlobalFunction( "IsMagmaIsomorphic" ); #! are anti-isomorphic. DeclareGlobalFunction( "IsMagmaAntiisomorphic" ); +#! @Arguments [M] +#! @Description +#! generates transposed magma M (a string) +DeclareGlobalFunction( "TransposedMagma" ); + #! @Arguments [M] #! @Description diff --git a/lib/utils.gi b/lib/utils.gi index 8d65049..5448af1 100644 --- a/lib/utils.gi +++ b/lib/utils.gi @@ -9,6 +9,11 @@ InstallGlobalFunction(IsAntiassociative, return true; end); +InstallGlobalFunction(TransposedMagma, + function(M) + return MagmaByMultiplicationTable(TransposedMat(MultiplicationTable(M))); +end); + InstallGlobalFunction(MagmaIsomorphism, function(M, N) local psi, n, p, m, elms; @@ -71,7 +76,7 @@ end); InstallGlobalFunction(HasPropertyA3, function(M) - local partitions, s, p, ns, rows_cartesian, bool_across_values; + local partitions, s, p, ns, rows_cartesian, bool_across_values, bool_across_partitions; ns := GeneratorsOfMagma(M); for s in [ 2 .. Size(M) ] do partitions := PartitionsSet(ns, s); diff --git a/tst/test_utils_hasproperty_a3.tst b/tst/test_utils_hasproperty_a3.tst new file mode 100644 index 0000000..8df336e --- /dev/null +++ b/tst/test_utils_hasproperty_a3.tst @@ -0,0 +1,13 @@ +gap> START_TEST("smallantimagmas: test_utils_hasproperty_a3.tst"); + +gap> ForAll(AllSmallAntimagmas(2), M -> HasPropertyA3(M) or HasPropertyA3( TransposedMagma(M) ) ); +true + +gap> ForAll(AllSmallAntimagmas(3), M -> HasPropertyA3(M) or HasPropertyA3( TransposedMagma(M) ) ); +true + +gap> ForAny(AllSmallAntimagmas(4), M -> not (HasPropertyA3(M) or HasPropertyA3( TransposedMagma(M) ) ) ); +true + +gap> STOP_TEST( "test_utils_hasproperty_a3.tst" ); +