Closed tueda closed 1 year ago
28e15eaf0856a0a012795298d6a4b570e764a8b1 passes the following corner case test:
*--#[ moebius_3 :
* corner cases, see #430
#do i=1,9
L F`i' = moebius_(2^15-`i');
#enddo
#do i=1,9
L G`i' = moebius_(2^31-`i');
#enddo
P;
.end
assert succeeded?
if wordsize >= 2
assert result("F1") =~ expr("-1")
assert result("F2") =~ expr("1")
assert result("F3") =~ expr("1")
assert result("F4") =~ expr("0")
assert result("F5") =~ expr("-1")
assert result("F6") =~ expr("1")
assert result("F7") =~ expr("0")
assert result("F8") =~ expr("0")
assert result("F9") =~ expr("-1")
end
if wordsize >= 4
assert result("G1") =~ expr("-1")
assert result("G2") =~ expr("0")
assert result("G3") =~ expr("-1")
assert result("G4") =~ expr("0")
assert result("G5") =~ expr("1")
assert result("G6") =~ expr("-1")
assert result("G7") =~ expr("1")
assert result("G8") =~ expr("0")
assert result("G9") =~ expr("-1")
end
*--#] moebius_3 :
though I haven't put this test into the repository because it easily leads to a timeout.
Maybe check.rb
needs some way to extend the default timeout for specific tests.
nexus@nexus:~/Projects/form-master$ form test_430.frm FORM 4.3 (Dec 28 2022) 64-bits Run: Thu Dec 29 08:07:43 2022 *--#[ moebius_3 :
L Fi' = moebius_(2^15-
i');
L Gi' = moebius_(2^31-
i');
P; .end
Time = 0.00 sec Generated terms = 1 F1 Terms in output = 1 Bytes used = 20
Time = 0.00 sec Generated terms = 1 F2 Terms in output = 1 Bytes used = 20
Time = 0.00 sec Generated terms = 1 F3 Terms in output = 1 Bytes used = 20
Time = 0.00 sec Generated terms = 0 F4 Terms in output = 0 Bytes used = 4
Time = 0.00 sec Generated terms = 1 F5 Terms in output = 1 Bytes used = 20
Time = 0.00 sec Generated terms = 1 F6 Terms in output = 1 Bytes used = 20
Time = 0.00 sec Generated terms = 0 F7 Terms in output = 0 Bytes used = 4
Time = 0.00 sec Generated terms = 0 F8 Terms in output = 0 Bytes used = 4
Time = 0.00 sec Generated terms = 1 F9 Terms in output = 1 Bytes used = 20
Time = 1.29 sec Generated terms = 1 G1 Terms in output = 1 Bytes used = 20
Time = 1.29 sec Generated terms = 0 G2 Terms in output = 0 Bytes used = 4
Time = 1.29 sec Generated terms = 1 G3 Terms in output = 1 Bytes used = 20
Time = 1.29 sec Generated terms = 0 G4 Terms in output = 0 Bytes used = 4
Time = 1.29 sec Generated terms = 1 G5 Terms in output = 1 Bytes used = 20
Time = 1.29 sec Generated terms = 1 G6 Terms in output = 1 Bytes used = 20
Time = 1.29 sec Generated terms = 1 G7 Terms in output = 1 Bytes used = 20
Time = 1.29 sec Generated terms = 0 G8 Terms in output = 0 Bytes used = 4
Time = 1.29 sec Generated terms = 1 G9 Terms in output = 1 Bytes used = 20
F1 =
1;
F2 = 1;
F3 = 1;
F4 = 0;
F5 =
1;
F6 = 1;
F7 = 0;
F8 = 0;
F9 =
1;
G1 =
1;
G2 = 0;
G3 =
1;
G4 = 0;
G5 = 1;
G6 =
1;
G7 = 1;
G8 = 0;
G9 =
1;
1.29 sec out of 1.30 sec nexus@nexus:~/Projects/form-master$
On 64-bit machines, the following code does not work (unless you have plenty of memory space ~ O(10EB)?):