I pulled (fresh clone) from https://github.com/martinbaker/fricasAlgTop but forgot to update permgrp :( Sorry!
On Tuesday, 31 January 2017 19:55:54 UTC+1, Martin Baker wrote: > > On 01/31/2017 06:33 PM, Waldek Hebisch wrote: > > Kurt Pagani wrote: > >> > >> @Martin: gpresent.input now reports: unexpected failures: 3 > >> > >> relationsInGenerator? > > > > Which ones? For ma all tests passed. > > Note: you need to use latest version of both: > gpresent.spad > permgrps.spad > > If I update gpresent but not permgrps then I see 3 errors. > > Martin B > -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to fricas-devel+unsubscr...@googlegroups.com. To post to this group, send email to fricas-devel@googlegroups.com. Visit this group at https://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
(2) -> )read gpresent -- regression tests for code in gpresent.spad )set break resume )expose UnittestCount UnittestAux Unittest UnittestCount is now explicitly exposed in frame initial UnittestAux is now explicitly exposed in frame initial Unittest is now explicitly exposed in frame initial )expose GroupPresentation GroupPresentation is already explicitly exposed in frame initial testsuite "gpresent" All user variables and function definitions have been cleared. Type: Void -- first we try each simplification rule in its simplest -- form then we try combinations. testcase "simplification - remove one generator" All user variables and function definitions have been cleared. Type: Void triv := groupPresentation([],[]) (2) < | > Type: GroupPresentation t1 := simplify(groupPresentation([1],[[1]])) (3) < | > Type: GroupPresentation testEquals("triv", "t1") Type: Void testcase "simplification - repeated remove one generator" All user variables and function definitions have been cleared. Type: Void triv := groupPresentation([],[]) (2) < | > Type: GroupPresentation t2 := simplify(groupPresentation([1,2],[[1],[2]])) (3) < | > Type: GroupPresentation testEquals("triv", "t2") Type: Void testcase "simplification - cancel empty" All user variables and function definitions have been cleared. Type: Void triv := groupPresentation([],[]) (2) < | > Type: GroupPresentation t3 := simplify(groupPresentation([0],[[0]])) (3) < | > Type: GroupPresentation testEquals("triv", "t3") Type: Void testcase "simplification - cancel inverse" All user variables and function definitions have been cleared. Type: Void triv := groupPresentation([],[]) (2) < | > Type: GroupPresentation t4 := simplify(groupPresentation([1],[[1],[-1]])) (3) < | > Type: GroupPresentation testEquals("triv", "t4") Type: Void testcase "simplification - 2 element rule" All user variables and function definitions have been cleared. Type: Void free1 := groupPresentation([1],[]) (2) <a | > Type: GroupPresentation t5 := simplify(groupPresentation([1,2],[[1,2]])) (3) <b | > Type: GroupPresentation testEquals("free1", "t5") Type: Void testcase "simplification - minimise inverses" All user variables and function definitions have been cleared. Type: Void free3 := groupPresentation([1,2,3],[[1,2,3]]) (2) <a b c | a*b*c> Type: GroupPresentation t6 := simplify(groupPresentation([1,2,3],[[-3,-2,-1]])) (3) <a b c | a*b*c> Type: GroupPresentation testEquals("free3", "t6") Type: Void testcase "simplification - substitution" All user variables and function definitions have been cleared. Type: Void square := groupPresentation([1,2,3,4,5],[[1,3,5],[2,3,4]]) (2) <a b c d f | a*c*f, b*c*d> Type: GroupPresentation t6 := simplify(square) (3) <a b d f | b*-a*-f*d> Type: GroupPresentation expected := groupPresentation([1,2,4,5],[[2,-1,-5,4]]) (4) <a b d f | b*-a*-f*d> Type: GroupPresentation testEquals("expected", "t6") Type: Void testcase "simplification - remove duplicate rule" All user variables and function definitions have been cleared. Type: Void x := groupPresentation([1,2,3],[[1,2,3],[1,2,3]]) (2) <a b c | a*b*c, a*b*c> Type: GroupPresentation t6 := simplify(x) (3) <a b c | a*b*c> Type: GroupPresentation expected := groupPresentation([1,2,3],[[1,2,3]]) (4) <a b c | a*b*c> Type: GroupPresentation testEquals("expected", "t6") Type: Void y := groupPresentation([1,2,3],[[1,2,3],[-3,-2,-1]]) (6) <a b c | a*b*c, -c*-b*-a> Type: GroupPresentation t7 := simplify(y) (7) <a b c | a*b*c> Type: GroupPresentation testEquals("expected", "t7") Type: Void z := groupPresentation([1,2,3],[[1,2,3],[2,3,1]]) (9) <a b c | a*b*c, b*c*a> Type: GroupPresentation t8 := simplify(z) (10) <a b c | a*b*c> Type: GroupPresentation testEquals("expected", "t8") Type: Void a := groupPresentation([1,2,3],[[1,2,3],[2,3,1],[-3,-2,-1]]) (12) <a b c | a*b*c, b*c*a, -c*-b*-a> Type: GroupPresentation t9 := simplify(a) (13) <a b c | a*b*c> Type: GroupPresentation testEquals("expected", "t9") Type: Void b := groupPresentation([1,2,3,4,5,6],[[1,2,3],[4,5,6],[4,5,6]]) (15) <a b c d f g | a*b*c, d*f*g, d*f*g> Type: GroupPresentation t10 := simplify(b) (16) <a b c d f g | a*b*c, d*f*g> Type: GroupPresentation expected2 := groupPresentation([1,2,3,4,5,6],[[1,2,3],[4,5,6]]) (17) <a b c d f g | a*b*c, d*f*g> Type: GroupPresentation testEquals("expected2", "t10") Type: Void c := groupPresentation([1,2,3,4,5,6],[[4,5,6],[1,2,3],[4,5,6]]) (19) <a b c d f g | d*f*g, a*b*c, d*f*g> Type: GroupPresentation t11 := simplify(c) (20) <a b c d f g | d*f*g, a*b*c> Type: GroupPresentation testEquals("expected2", "t11") Type: Void d := groupPresentation([1,2,3,4,5,6],[[4,5,6],[4,5,6],[1,2,3]]) (22) <a b c d f g | d*f*g, d*f*g, a*b*c> Type: GroupPresentation t12 := simplify(d) (23) <a b c d f g | d*f*g, a*b*c> Type: GroupPresentation testEquals("expected2", "t12") Type: Void -- more complicated simplifications testcase "complicated simplification" All user variables and function definitions have been cleared. Type: Void c1 := groupPresentation([1,2,3,4,5,6,7],[[1],[0],_ [2,4,5],[2,4,7],[2,6],[2,6,7],[3,4,6],[3,5,6],[3,4,7],_ [3,7],[4,5],[4,6],[5,6,7],[5,7]]) (2) <a b c d f g h | a, e, b*d*f, b*d*h, b*g, b*g*h, c*d*g, c*f*g, c*d*h, c*h, d*f, d*g , f*g*h, f*h > Type: GroupPresentation t7 := simplify(c1) (3) < | > Type: GroupPresentation expected := groupPresentation([],[]) (4) < | > Type: GroupPresentation testEquals("expected", "t7") Type: Void -- direct product and quotient testcase "direct product" All user variables and function definitions have been cleared. Type: Void a := groupPresentation([1],[]) (2) <a | > Type: GroupPresentation t8 := directProduct(a,a) (3) <a b | a*b*a*b> Type: GroupPresentation expected := groupPresentation([1,2],[[1,2,1,2]]) (4) <a b | a*b*a*b> Type: GroupPresentation testEquals("expected", "t8") Type: Void expected2 := groupPresentation([2],[[2,2]]) (6) <b | b*b> Type: GroupPresentation t9 := quotient(t8,[1]) (7) <b | b*b> Type: GroupPresentation testEquals("expected2", "t9") Type: Void t10 := quotient(t8,[[1]]) (9) <b | b*b> Type: GroupPresentation testEquals("expected2", "t10") Type: Void -- conversions to PermutationGroup testcase "PermutationGroup conversions cyclic group" All user variables and function definitions have been cleared. Type: Void c5a := cyclicGroup(5)$PermutationGroupExamples (2) <(1 2 3 4 5)> Type: PermutationGroup(Integer) c5b := cyclicGroup(5)$GroupPresentation (3) <a | a*a*a*a*a> Type: GroupPresentation c5c := toPermutationIfCan(c5b) :: PermutationGroup(Integer) (4) <(1 2 3 4 5)> Type: PermutationGroup(Integer) c5r := relationsInGenerators(c5a) There are no library operations named relationsInGenerators Use HyperDoc Browse or issue )what op relationsInGenerators to learn if there is any operation containing " relationsInGenerators " in its name. Cannot find a definition or applicable library operation named relationsInGenerators with argument type(s) PermutationGroup(Integer) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... c5d := groupPresentation([1], c5r)$GroupPresentation There are 1 exposed and 0 unexposed library operations named groupPresentation having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op groupPresentation to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named groupPresentation with argument type(s) List(NonNegativeInteger) Symbol Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... c5e := toPermutationIfCan(c5d)::PermutationGroup(Integer) There are 1 exposed and 0 unexposed library operations named toPermutationIfCan having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op toPermutationIfCan to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named toPermutationIfCan with argument type(s) Variable(c5d) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... testEquals("c5a", "c5c") Type: Void testEquals("c5c", "c5e") There are 1 exposed and 0 unexposed library operations named testEqualsAux having 3 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op testEqualsAux to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named testEqualsAux with argument type(s) String PermutationGroup(Integer) Variable(c5e) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... testcase "PermutationGroup conversions dihedral group" All user variables and function definitions have been cleared. Type: Void d3a := dihedralGroup(3)$PermutationGroupExamples (2) <(1 2 3),(1 3)> Type: PermutationGroup(Integer) d3b := dihedralGroup(3)$GroupPresentation (3) <a b | a*a*a, b*b, a*b*a*b> Type: GroupPresentation d3c := toPermutationIfCan(d3b) :: PermutationGroup(Integer) (4) <(1 3 5)(2 4 6),(1 2)(3 6)(4 5)> Type: PermutationGroup(Integer) d3r := relationsInGenerators(d3a) There are no library operations named relationsInGenerators Use HyperDoc Browse or issue )what op relationsInGenerators to learn if there is any operation containing " relationsInGenerators " in its name. Cannot find a definition or applicable library operation named relationsInGenerators with argument type(s) PermutationGroup(Integer) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... d3d := groupPresentation([1, 2], d3r)$GroupPresentation There are 1 exposed and 0 unexposed library operations named groupPresentation having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op groupPresentation to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named groupPresentation with argument type(s) List(NonNegativeInteger) Symbol Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... d3d := simplify(d3d) (5) d3d Type: Expression(Integer) d3e := toPermutationIfCan(d3d)::PermutationGroup(Integer) There are 1 exposed and 0 unexposed library operations named toPermutationIfCan having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op toPermutationIfCan to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named toPermutationIfCan with argument type(s) Expression(Integer) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... testEquals("order(d3a)", "order(d3c)") Type: Void testEquals("order(d3c)", "order(d3e)") There are 9 exposed and 10 unexposed library operations named order having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op order to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named order with argument type(s) Variable(d3e) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... testcase "symmetric group" All user variables and function definitions have been cleared. Type: Void le4 := [1, 2, 3] (2) [1,2,3] Type: List(PositiveInteger) lr4 := [[1, 1], [2, 2], [3, 3], [1, 2, 1, 2, 1, 2], [2, 3, 2, 3, 2, 3], [1, 3, 1, 3]] (3) [[1,1],[2,2],[3,3],[1,2,1,2,1,2],[2,3,2,3,2,3],[1,3,1,3]] Type: List(List(PositiveInteger)) s4a := symmetricGroup(4)$PermutationGroupExamples (4) <(1 2 3 4),(1 2)> Type: PermutationGroup(Integer) s4b := groupPresentation(le4, lr4) (5) <a b c | a*a, b*b, c*c, a*b*a*b*a*b, b*c*b*c*b*c, a*c*a*c> Type: GroupPresentation s4c := toPermutationIfCan(s4b) :: PermutationGroup(Integer) (6) < (1 2)(3 7)(4 6)(5 10)(8 13)(9 15)(11 16)(12 18)(14 20)(17 22)(19 23) (21 24) , (1 3)(2 5)(4 9)(6 12)(7 10)(8 14)(11 17)(13 19)(15 18)(16 21)(20 23) (22 24) , (1 4)(2 6)(3 8)(5 11)(7 13)(9 14)(10 16)(12 17)(15 20)(18 22)(19 21)(23 24) > Type: PermutationGroup(Integer) s4r := relationsInStrongGenerators(s4a) There are no library operations named relationsInStrongGenerators Use HyperDoc Browse or issue )what op relationsInStrongGenerators to learn if there is any operation containing " relationsInStrongGenerators " in its name. Cannot find a definition or applicable library operation named relationsInStrongGenerators with argument type(s) PermutationGroup(Integer) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... s4d := groupPresentation([1, 2, 3], s4r)$GroupPresentation There are 1 exposed and 0 unexposed library operations named groupPresentation having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op groupPresentation to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named groupPresentation with argument type(s) List(NonNegativeInteger) Symbol Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... s4e := toPermutationIfCan(s4d)::PermutationGroup(Integer) There are 1 exposed and 0 unexposed library operations named toPermutationIfCan having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op toPermutationIfCan to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named toPermutationIfCan with argument type(s) Variable(s4d) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... testEquals("order(s4c)", "24") Type: Void testEquals("order(s4e)", "24") There are 9 exposed and 10 unexposed library operations named order having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op order to learn more about the available operations. Perhaps package-calling the operation or using coercions on the arguments will allow you to apply the operation. Cannot find a definition or applicable library operation named order with argument type(s) Variable(s4e) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... s4r2 := relationsInGenerators(s4a) There are no library operations named relationsInGenerators Use HyperDoc Browse or issue )what op relationsInGenerators to learn if there is any operation containing " relationsInGenerators " in its name. Cannot find a definition or applicable library operation named relationsInGenerators with argument type(s) PermutationGroup(Integer) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need. Continuing to read the file... s4gen := generators(s4a) (8) [(1 2 3 4),(1 2)] Type: List(Permutation(Integer)) ielt(a, i) == (i > 0 => elt(a, i); inv(elt(a, -i))) Type: Void -- test that all relations are valid for rel in s4r2 repeat prod := reduce(_*, [ielt(s4gen, i) for i in rel], 1$PERM(INT)) testEquals("prod", "1$PERM(INT)") FriCAS cannot iterate with rel over your form now. Perhaps you should try using a conversion to make sure your form is a list or stream, for example. Continuing to read the file... statistics() ============================================================================= General WARNINGS: * do not use ')clear completely' before having used 'statistics()' It clears the statistics without warning! * do not forget to pass the arguments of the testXxxx functions as Strings! Otherwise, the test will fail and statistics() will not notice! * testLibraryError does not prevent FriCAS from aborting the current block. Thus, if a block contains other test functions, they will not be executed and statistics() will not notice! ============================================================================= WARNINGS: Testsuite: gpresent Testcase: simplification - remove one generator test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - repeated remove one generator test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - cancel empty test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - cancel inverse test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - 2 element rule test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - minimise inverses test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - substitution test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 2 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 3 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 4 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 5 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 6 testing in a domain without InputForm! Testsuite: gpresent Testcase: simplification - remove duplicate rule test: 7 testing in a domain without InputForm! Testsuite: gpresent Testcase: complicated simplification test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: direct product test: 1 testing in a domain without InputForm! Testsuite: gpresent Testcase: direct product test: 2 testing in a domain without InputForm! Testsuite: gpresent Testcase: direct product test: 3 testing in a domain without InputForm! Testsuite: gpresent Testcase: PermutationGroup conversions cyclic group test: 1 testing in a domain without InputForm! ============================================================================= Testsuite: gpresent failed (total): 3 (13) failed testcases were: --------------------------------------------------------------------------- Testcase: PermutationGroup conversions cyclic group failed (total): 1 (2) fatal tests were: 2: EQUL: (c5c, c5e) --------------------------------------------------------------------------- Testcase: PermutationGroup conversions dihedral group failed (total): 1 (2) fatal tests were: 2: EQUL: (order(d3c), order(d3e)) --------------------------------------------------------------------------- Testcase: symmetric group failed (total): 1 (2) fatal tests were: 2: EQUL: (order(s4e), 24) ============================================================================= testsuite | testcases: failed (total) | tests: failed (total) gpresent 3 (13) 3 (24) ============================================================================= File summary. unexpected failures: 3 expected failures: 0 unexpected passes: 0 total tests: 24 Type: Void (11) ->