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 [email protected].
To post to this group, send email to [email protected].
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) ->