Skip to content

Commit 70b60bf

Browse files
fingolfinChrisJefferson
authored andcommitted
Speed up some of our slowest tst files
1 parent 17d1f03 commit 70b60bf

4 files changed

Lines changed: 70 additions & 39 deletions

File tree

tst/testinstall/random.tst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#@local rm,g,orbs,orb,getOneInt,a,x,y
1+
#@local R,a,rm,g,orbs,orb,getOneInt
22
gap> START_TEST("random.tst");
33
gap> ReadGapRoot( "tst/testrandom.g" );
44

tst/testinstall/wordrep.tst

Lines changed: 53 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,33 @@ f1*f2^-1024*f1^-1
127127
f1*f2^3072*f1^-1
128128
f1*f2^-3072*f1^-1
129129
f1*f2^102400*f1^-1
130-
gap> u32:=ObjByExtRep(fam,[1,1, 2,2^20, 1,-1]); u32^0; u32^1; u32^-1; u32^3; u32^-3; u32^100;;
130+
gap> u32:=ObjByExtRep(fam,[1,1, 2,2^20, 1,-1]); ExtRepOfObj(u32);
131131
f1*f2^1048576*f1^-1
132-
<identity ...>
133-
f1*f2^1048576*f1^-1
134-
f1*f2^-1048576*f1^-1
135-
f1*f2^3145728*f1^-1
136-
f1*f2^-3145728*f1^-1
137-
gap> uinf:=ObjByExtRep(fam,[1,1, 2,2^40, 1,-1]);; uinf^0; uinf^1;; uinf^-1;; uinf^3;; uinf^-3;; uinf^100;;
138-
<identity ...>
132+
[ 1, 1, 2, 1048576, 1, -1 ]
133+
gap> ExtRepOfObj(u32^0);
134+
[ ]
135+
gap> ExtRepOfObj(u32^1);
136+
[ 1, 1, 2, 1048576, 1, -1 ]
137+
gap> ExtRepOfObj(u32^-1);
138+
[ 1, 1, 2, -1048576, 1, -1 ]
139+
gap> ExtRepOfObj(u32^3);
140+
[ 1, 1, 2, 3145728, 1, -1 ]
141+
gap> ExtRepOfObj(u32^-3);
142+
[ 1, 1, 2, -3145728, 1, -1 ]
143+
gap> u32^100;;
144+
gap> uinf:=ObjByExtRep(fam,[1,1, 2,2^40, 1,-1]);; ExtRepOfObj(uinf);
145+
[ 1, 1, 2, 1099511627776, 1, -1 ]
146+
gap> ExtRepOfObj(uinf^0);
147+
[ ]
148+
gap> ExtRepOfObj(uinf^1);
149+
[ 1, 1, 2, 1099511627776, 1, -1 ]
150+
gap> ExtRepOfObj(uinf^-1);
151+
[ 1, 1, 2, -1099511627776, 1, -1 ]
152+
gap> ExtRepOfObj(uinf^3);
153+
[ 1, 1, 2, 3298534883328, 1, -1 ]
154+
gap> ExtRepOfObj(uinf^-3);
155+
[ 1, 1, 2, -3298534883328, 1, -1 ]
156+
gap> uinf^100;;
139157

140158
# special case: w * gj^x * t * gj^y * w^-1, x != -y
141159
gap> v8:=ObjByExtRep(fam,[1,1, 2,1, 3,1, 4,-1, 2,2, 1,-1]); v8^0; v8^1; v8^-1; v8^3; v8^-3; v8^100;
@@ -153,13 +171,19 @@ f1*f2*f3^1024*f4^-1*f2^2*f1^-1
153171
f1*f2^-2*f4*f3^-1024*f2^-1*f1^-1
154172
f1*(f2*f3^1024*f4^-1*f2^2)^3*f1^-1
155173
f1*(f2^-2*f4*f3^-1024*f2^-1)^3*f1^-1
156-
gap> v32:=ObjByExtRep(fam,[1,1, 2,1, 3,2^20, 4,-1, 2,2, 1,-1]); v32^0; v32^1; v32^-1; v32^3; v32^-3; v32^100;;
157-
f1*f2*f3^1048576*f4^-1*f2^2*f1^-1
158-
<identity ...>
159-
f1*f2*f3^1048576*f4^-1*f2^2*f1^-1
160-
f1*f2^-2*f4*f3^-1048576*f2^-1*f1^-1
161-
f1*(f2*f3^1048576*f4^-1*f2^2)^3*f1^-1
162-
f1*(f2^-2*f4*f3^-1048576*f2^-1)^3*f1^-1
174+
gap> v32:=ObjByExtRep(fam,[1,1, 2,1, 3,2^20, 4,-1, 2,2, 1,-1]);; ExtRepOfObj(v32);
175+
[ 1, 1, 2, 1, 3, 1048576, 4, -1, 2, 2, 1, -1 ]
176+
gap> ExtRepOfObj(v32^0);
177+
[ ]
178+
gap> ExtRepOfObj(v32^-1);
179+
[ 1, 1, 2, -2, 4, 1, 3, -1048576, 2, -1, 1, -1 ]
180+
gap> ExtRepOfObj(v32^3);
181+
[ 1, 1, 2, 1, 3, 1048576, 4, -1, 2, 3, 3, 1048576, 4, -1, 2, 3, 3, 1048576,
182+
4, -1, 2, 2, 1, -1 ]
183+
gap> ExtRepOfObj(v32^-3);
184+
[ 1, 1, 2, -2, 4, 1, 3, -1048576, 2, -3, 4, 1, 3, -1048576, 2, -3, 4, 1, 3,
185+
-1048576, 2, -1, 1, -1 ]
186+
gap> v32^100;;
163187

164188
# general case: w * t * w^-1
165189
gap> x8:=ObjByExtRep(fam,[1,1, 2,1, 3,1, 4,-1]); x8^0; x8^1; x8^-1; x8^3; x8^-3; x8^100;
@@ -170,21 +194,26 @@ f4*f3^-1*f2^-1*f1^-1
170194
(f1*f2*f3*f4^-1)^3
171195
(f4*f3^-1*f2^-1*f1^-1)^3
172196
(f1*f2*f3*f4^-1)^100
173-
gap> x16:=ObjByExtRep(fam,[1,1, 2,1, 3,2^10, 4,-1]); x16^0; x16^1; x16^-1; x16^3; x16^-3; x16^100;
197+
gap> x16:=ObjByExtRep(fam,[1,1, 2,1, 3,2^10, 4,-1]); x16^0; x16^1; x16^-1; x16^3; x16^-3;
174198
f1*f2*f3^1024*f4^-1
175199
<identity ...>
176200
f1*f2*f3^1024*f4^-1
177201
f4*f3^-1024*f2^-1*f1^-1
178202
(f1*f2*f3^1024*f4^-1)^3
179203
(f4*f3^-1024*f2^-1*f1^-1)^3
180-
(f1*f2*f3^1024*f4^-1)^100
181-
gap> x32:=ObjByExtRep(fam,[1,1, 2,1, 3,2^20, 4,-1]); x32^0; x32^1; x32^-1; x32^3; x32^-3;
182-
f1*f2*f3^1048576*f4^-1
183-
<identity ...>
184-
f1*f2*f3^1048576*f4^-1
185-
f4*f3^-1048576*f2^-1*f1^-1
186-
(f1*f2*f3^1048576*f4^-1)^3
187-
(f4*f3^-1048576*f2^-1*f1^-1)^3
204+
gap> ExtRepOfObj(x16^100) = Concatenation(ListWithIdenticalEntries(100, ExtRepOfObj(x16)));
205+
true
206+
gap> x32:=ObjByExtRep(fam,[1,1, 2,1, 3,2^20, 4,-1]);;
207+
gap> ExtRepOfObj(x32);
208+
[ 1, 1, 2, 1, 3, 1048576, 4, -1 ]
209+
gap> for i in [0,1,-1,3,-3] do Print(ExtRepOfObj(x32^i),"\n"); od;
210+
[ ]
211+
[ 1, 1, 2, 1, 3, 1048576, 4, -1 ]
212+
[ 4, 1, 3, -1048576, 2, -1, 1, -1 ]
213+
[ 1, 1, 2, 1, 3, 1048576, 4, -1, 1, 1, 2, 1, 3, 1048576, 4, -1, 1, 1, 2, 1,
214+
3, 1048576, 4, -1 ]
215+
[ 4, 1, 3, -1048576, 2, -1, 1, -1, 4, 1, 3, -1048576, 2, -1, 1, -1, 4, 1, 3,
216+
-1048576, 2, -1, 1, -1 ]
188217

189218
#
190219
# test overflow checks when powering

tst/testrandom.g

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,31 +27,33 @@
2727
# checkin(e, C): returns if e is in C (usually checkin is '\in').
2828

2929
randomTestInner := function(filter, global_rs, global_randfunc, randfunc, collection, checkin)
30-
local test1, test2, test3, test4, test5, test6, local_rs;
30+
local RANDOM_REPS, test1, test2, test3, test4, test5, test6, local_rs;
31+
32+
RANDOM_REPS := 250;
3133

3234
# We do a single call first, to deal with calling Random causing extra attributes
3335
# of 'collection' to be set, changing the dispatch
3436
randfunc(collection);
3537

3638
# Firstly, we will generate a base list
3739
Init(global_rs, 6);
38-
test1 := List([1..1000], x -> global_randfunc(collection));
40+
test1 := List([1..RANDOM_REPS], x -> global_randfunc(collection));
3941
# test2 should equal test1
4042
Init(global_rs, 6);
41-
test2 := List([1..1000], x -> global_randfunc(collection));
43+
test2 := List([1..RANDOM_REPS], x -> global_randfunc(collection));
4244
# test3 should also = test1
4345
Init(global_rs, 6);
44-
test3 := List([1..1000], x -> randfunc(global_rs, collection));
46+
test3 := List([1..RANDOM_REPS], x -> randfunc(global_rs, collection));
4547
# test4 should be different (as it came from a different seed)
4648
Init(global_rs, 8);
47-
test4 := List([1..1000], x -> global_randfunc(collection));
49+
test4 := List([1..RANDOM_REPS], x -> global_randfunc(collection));
4850
# test5 should be the same as test4, as it is made from seed 8
4951
# test6 should be the same as test1. Also, it checks that making test5
5052
# did not touch the global source at all.
5153
Init(global_rs, 8);
5254
local_rs := RandomSource(filter, 6);
53-
test5 := List([1..1000], x -> randfunc(local_rs, collection));
54-
test6 := List([1..1000], x -> global_randfunc(collection));
55+
test5 := List([1..RANDOM_REPS], x -> randfunc(local_rs, collection));
56+
test6 := List([1..RANDOM_REPS], x -> global_randfunc(collection));
5557
if ForAny(Concatenation(test1, test2, test3, test4, test5, test6), x -> not (checkin(x, collection)) ) then
5658
Print("Random member outside collection: ", collection,"\n");
5759
fi;

tst/teststandard/hash2.tst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ gap> Length(Orbit(g,g.1[1],OnRight));
1010
gap> g:=GL(8,2);;
1111
gap> Length(Orbit(g,g.1,OnPoints));
1212
32385
13-
gap> m1:=NullMat(64,64,Z(2));;
14-
gap> for i in [1,9..57] do m1{[i..i+7]}{[i..i+7]}:=g.1;od;
15-
gap> m2:=NullMat(64,64,Z(2));;
16-
gap> for i in [1,9..57] do m2{[i..i+7]}{[i..i+7]}:=g.2;od;
13+
gap> m1:=NullMat(32,32,Z(2));;
14+
gap> for i in [1,9..25] do m1{[i..i+7]}{[i..i+7]}:=g.1;od;
15+
gap> m2:=NullMat(32,32,Z(2));;
16+
gap> for i in [1,9..25] do m2{[i..i+7]}{[i..i+7]}:=g.2;od;
1717
gap> h:=Group(m1,m2);;
18-
gap> Length(Orbit(h,h.1,OnPoints));
18+
gap> Length(Orbit(h,h.1,OnPoints));
1919
32385
2020
gap> g:=SU(6,3);;
2121
gap> Length(Orbit(g,g.1[1],OnRight));
@@ -24,11 +24,11 @@ gap> g:=SU(6,2);;
2424
gap> Length(Orbit(g,g.2^5,OnPoints));
2525
693
2626
gap> m1:=NullMat(60,60,Z(4));;
27-
gap> for i in [1,7..55] do m1{[i..i+5]}{[i..i+5]}:=g.1;od;
27+
gap> for i in [1,7..55] do m1{[i..i+5]}{[i..i+5]}:=g.1;od;
2828
gap> m2:=NullMat(60,60,Z(4));;
2929
gap> for i in [1,7..55] do m2{[i..i+5]}{[i..i+5]}:=g.2;od;
3030
gap> h:=Group(m1,m2);;
31-
gap> Length(Orbit(h,h.1[1],OnRight));
31+
gap> Length(Orbit(h,h.1[1],OnRight));
3232
2079
3333
gap> Length(Orbit(h,h.2^5,OnPoints));
3434
693

0 commit comments

Comments
 (0)