File: function.tst

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (30 lines) | stat: -rw-r--r-- 1,137 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#@local r,x,funcstr,func
gap> START_TEST("function.tst");

# Test functions with very large lists
gap> r := List([1..(16777216/GAPInfo.BytesPerVariable)-1]);;
gap> funcstr := String(r);;
gap> funcstr := Concatenation("return ", funcstr, ";");;
gap> func := ReadAsFunction(InputTextString(funcstr));;
gap> func() = r;
true
gap> funcstr := String(List([1..(16777216/GAPInfo.BytesPerVariable)], x -> x));;
gap> funcstr := Concatenation("return ", funcstr, ";");;
gap> ReadAsFunction(InputTextString(funcstr));;
Error, function too large for parser

# Test functions with very large records
gap> r := rec();; for x in [1..(16777216/GAPInfo.BytesPerVariable-2)/2] do r.(x) := x; od;;
gap> funcstr := String(r);;
gap> funcstr := Concatenation("return ", funcstr, ";");;
gap> func := ReadAsFunction(InputTextString(funcstr));;
gap> func() = r;
true
gap> r := rec();; for x in [1..(16777216/GAPInfo.BytesPerVariable)/2] do r.(x) := x; od;;
gap> funcstr := String(r);;
gap> funcstr := Concatenation("return ", funcstr, ";");;
gap> ReadAsFunction(InputTextString(funcstr));;
Error, function too large for parser

#
gap> STOP_TEST("function.tst");