|
Packit |
562c7a |
# mode: run
|
|
Packit |
562c7a |
# tag: closures
|
|
Packit |
562c7a |
# preparse: id
|
|
Packit |
562c7a |
# preparse: def_to_cdef
|
|
Packit |
562c7a |
#
|
|
Packit |
562c7a |
# closure_tests_1.pyx
|
|
Packit |
562c7a |
#
|
|
Packit |
562c7a |
# Battery of tests for closures in Cython. Based on the collection of
|
|
Packit |
562c7a |
# compiler tests from P423/B629 at Indiana University, Spring 1999 and
|
|
Packit |
562c7a |
# Fall 2000. Special thanks to R. Kent Dybvig, Dan Friedman, Kevin
|
|
Packit |
562c7a |
# Millikin, and everyone else who helped to generate the original
|
|
Packit |
562c7a |
# tests. Converted into a collection of Python/Cython tests by Craig
|
|
Packit |
562c7a |
# Citro.
|
|
Packit |
562c7a |
#
|
|
Packit |
562c7a |
# Note: This set of tests is split (somewhat randomly) into several
|
|
Packit |
562c7a |
# files, simply because putting all the tests in a single file causes
|
|
Packit |
562c7a |
# gcc and g++ to buckle under the load.
|
|
Packit |
562c7a |
#
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1425():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1425()
|
|
Packit |
562c7a |
142
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
if (True):
|
|
Packit |
562c7a |
def g1424():
|
|
Packit |
562c7a |
if (True):
|
|
Packit |
562c7a |
return 122
|
|
Packit |
562c7a |
return (20)+(g1424())
|
|
Packit |
562c7a |
else:
|
|
Packit |
562c7a |
return 10000
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1432():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1432()
|
|
Packit |
562c7a |
[0, []]
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1431():
|
|
Packit |
562c7a |
return [0,[]]
|
|
Packit |
562c7a |
x_1056 = g1431()
|
|
Packit |
562c7a |
if (x_1056):
|
|
Packit |
562c7a |
def g1430():
|
|
Packit |
562c7a |
def g1429():
|
|
Packit |
562c7a |
return (x_1056[0])
|
|
Packit |
562c7a |
def g1428():
|
|
Packit |
562c7a |
return (x_1056[0])
|
|
Packit |
562c7a |
return (g1429())+(g1428())
|
|
Packit |
562c7a |
x_1056[0] = g1430()
|
|
Packit |
562c7a |
return x_1056
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1435():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1435()
|
|
Packit |
562c7a |
4000
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1434():
|
|
Packit |
562c7a |
def g1433(y_1057):
|
|
Packit |
562c7a |
return y_1057
|
|
Packit |
562c7a |
return g1433
|
|
Packit |
562c7a |
return g1434()(4000)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1438():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1438()
|
|
Packit |
562c7a |
1
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1437():
|
|
Packit |
562c7a |
def g1436(x_1058):
|
|
Packit |
562c7a |
return x_1058
|
|
Packit |
562c7a |
return g1436
|
|
Packit |
562c7a |
f_1059 = g1437()
|
|
Packit |
562c7a |
return (f_1059(0)+1)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1441():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1441()
|
|
Packit |
562c7a |
4
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1440():
|
|
Packit |
562c7a |
def g1439(y_1060):
|
|
Packit |
562c7a |
return y_1060
|
|
Packit |
562c7a |
return g1439
|
|
Packit |
562c7a |
f_1061 = g1440()
|
|
Packit |
562c7a |
return f_1061(f_1061(4))
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1446():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1446()
|
|
Packit |
562c7a |
4
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1445():
|
|
Packit |
562c7a |
def g1444(f_1063):
|
|
Packit |
562c7a |
return f_1063(f_1063(4))
|
|
Packit |
562c7a |
return g1444
|
|
Packit |
562c7a |
def g1443():
|
|
Packit |
562c7a |
def g1442(y_1062):
|
|
Packit |
562c7a |
return y_1062
|
|
Packit |
562c7a |
return g1442
|
|
Packit |
562c7a |
return g1445()(g1443())
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1449():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1449()
|
|
Packit |
562c7a |
9000
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1448():
|
|
Packit |
562c7a |
a_1064 = 4000
|
|
Packit |
562c7a |
def g1447(b_1065):
|
|
Packit |
562c7a |
return (a_1064)+(b_1065)
|
|
Packit |
562c7a |
return g1447
|
|
Packit |
562c7a |
return g1448()(5000)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1454():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1454()
|
|
Packit |
562c7a |
9000
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1453():
|
|
Packit |
562c7a |
def g1452():
|
|
Packit |
562c7a |
def g1450(a_1066):
|
|
Packit |
562c7a |
def g1451(b_1067):
|
|
Packit |
562c7a |
return (a_1066)+(b_1067)
|
|
Packit |
562c7a |
return g1451
|
|
Packit |
562c7a |
return g1450
|
|
Packit |
562c7a |
return g1452()(4000)
|
|
Packit |
562c7a |
return g1453()(5000)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1459():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1459()
|
|
Packit |
562c7a |
2
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1458():
|
|
Packit |
562c7a |
def g1457(f_1069):
|
|
Packit |
562c7a |
return f_1069(f_1069(0))
|
|
Packit |
562c7a |
return g1457
|
|
Packit |
562c7a |
def g1456():
|
|
Packit |
562c7a |
def g1455(x_1068):
|
|
Packit |
562c7a |
return (x_1068+1)
|
|
Packit |
562c7a |
return g1455
|
|
Packit |
562c7a |
return g1458()(g1456())
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1462():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1462()
|
|
Packit |
562c7a |
0
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
x_1072 = 0
|
|
Packit |
562c7a |
def g1461():
|
|
Packit |
562c7a |
def g1460(x_1070):
|
|
Packit |
562c7a |
return x_1070
|
|
Packit |
562c7a |
return g1460
|
|
Packit |
562c7a |
f_1071 = g1461()
|
|
Packit |
562c7a |
a_1075 = f_1071(x_1072)
|
|
Packit |
562c7a |
b_1074 = f_1071(x_1072)
|
|
Packit |
562c7a |
c_1073 = f_1071(x_1072)
|
|
Packit |
562c7a |
return ((a_1075)+(b_1074))+(c_1073)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1465():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1465()
|
|
Packit |
562c7a |
3
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
x_1080 = 0
|
|
Packit |
562c7a |
y_1079 = 1
|
|
Packit |
562c7a |
z_1078 = 2
|
|
Packit |
562c7a |
def g1464():
|
|
Packit |
562c7a |
def g1463(x_1076):
|
|
Packit |
562c7a |
return x_1076
|
|
Packit |
562c7a |
return g1463
|
|
Packit |
562c7a |
f_1077 = g1464()
|
|
Packit |
562c7a |
a_1083 = f_1077(x_1080)
|
|
Packit |
562c7a |
b_1082 = f_1077(y_1079)
|
|
Packit |
562c7a |
c_1081 = f_1077(z_1078)
|
|
Packit |
562c7a |
return ((a_1083)+(b_1082))+(c_1081)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1468():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1468()
|
|
Packit |
562c7a |
0
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1467():
|
|
Packit |
562c7a |
def g1466(x_1085, y_1084):
|
|
Packit |
562c7a |
return x_1085
|
|
Packit |
562c7a |
return g1466
|
|
Packit |
562c7a |
f_1086 = g1467()
|
|
Packit |
562c7a |
a_1087 = f_1086(0, 1)
|
|
Packit |
562c7a |
return f_1086(a_1087, a_1087)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1471():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1471()
|
|
Packit |
562c7a |
0
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
x_1094 = 0
|
|
Packit |
562c7a |
y_1093 = 1
|
|
Packit |
562c7a |
z_1092 = 2
|
|
Packit |
562c7a |
def g1470():
|
|
Packit |
562c7a |
def g1469(x_1090, y_1089, z_1088):
|
|
Packit |
562c7a |
return x_1090
|
|
Packit |
562c7a |
return g1469
|
|
Packit |
562c7a |
f_1091 = g1470()
|
|
Packit |
562c7a |
a_1097 = f_1091(x_1094, y_1093, z_1092)
|
|
Packit |
562c7a |
b_1096 = y_1093
|
|
Packit |
562c7a |
c_1095 = z_1092
|
|
Packit |
562c7a |
return f_1091(a_1097, b_1096, c_1095)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1474():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1474()
|
|
Packit |
562c7a |
3
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1473():
|
|
Packit |
562c7a |
def g1472(a_1101, b_1100, c_1099, d_1098):
|
|
Packit |
562c7a |
return (a_1101)+(d_1098)
|
|
Packit |
562c7a |
return g1472
|
|
Packit |
562c7a |
f_1102 = g1473()
|
|
Packit |
562c7a |
return f_1102(0, 1, 2, 3)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1478():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1478()
|
|
Packit |
562c7a |
3
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1477():
|
|
Packit |
562c7a |
def g1476(x_1103):
|
|
Packit |
562c7a |
return x_1103
|
|
Packit |
562c7a |
return g1476
|
|
Packit |
562c7a |
f_1104 = g1477()
|
|
Packit |
562c7a |
def g1475():
|
|
Packit |
562c7a |
a_1107 = 0
|
|
Packit |
562c7a |
b_1106 = 1
|
|
Packit |
562c7a |
c_1105 = 2
|
|
Packit |
562c7a |
return (f_1104(a_1107))+((f_1104(b_1106))+(f_1104(c_1105)))
|
|
Packit |
562c7a |
return (f_1104(0))+(g1475())
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1483():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1483()
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
a_1108 = 0
|
|
Packit |
562c7a |
def g1482():
|
|
Packit |
562c7a |
def g1481():
|
|
Packit |
562c7a |
return 0
|
|
Packit |
562c7a |
return g1481
|
|
Packit |
562c7a |
a_1110 = g1482()
|
|
Packit |
562c7a |
def g1480():
|
|
Packit |
562c7a |
def g1479():
|
|
Packit |
562c7a |
return 11
|
|
Packit |
562c7a |
return g1479
|
|
Packit |
562c7a |
b_1109 = g1480()
|
|
Packit |
562c7a |
a_1110 = 11
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1486():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1486()
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
a_1111 = 0
|
|
Packit |
562c7a |
def g1485():
|
|
Packit |
562c7a |
def g1484():
|
|
Packit |
562c7a |
a_1113 = 0
|
|
Packit |
562c7a |
return g1484
|
|
Packit |
562c7a |
a_1113 = g1485()
|
|
Packit |
562c7a |
b_1112 = 11
|
|
Packit |
562c7a |
return a_1113()
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1491():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1491()
|
|
Packit |
562c7a |
0
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1490():
|
|
Packit |
562c7a |
def g1489():
|
|
Packit |
562c7a |
return 0
|
|
Packit |
562c7a |
return g1489
|
|
Packit |
562c7a |
a_1115 = g1490()
|
|
Packit |
562c7a |
def g1488():
|
|
Packit |
562c7a |
def g1487():
|
|
Packit |
562c7a |
return 11
|
|
Packit |
562c7a |
return g1487
|
|
Packit |
562c7a |
b_1114 = g1488()
|
|
Packit |
562c7a |
return a_1115()
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1494():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1494()
|
|
Packit |
562c7a |
2
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1493():
|
|
Packit |
562c7a |
x_1116 = 1
|
|
Packit |
562c7a |
def g1492(y_1117):
|
|
Packit |
562c7a |
return (x_1116)+(y_1117)
|
|
Packit |
562c7a |
return g1492
|
|
Packit |
562c7a |
f_1118 = g1493()
|
|
Packit |
562c7a |
x_1119 = 0
|
|
Packit |
562c7a |
return f_1118(f_1118(x_1119))
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1501():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1501()
|
|
Packit |
562c7a |
3050
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1500():
|
|
Packit |
562c7a |
def g1499():
|
|
Packit |
562c7a |
def g1498(x_1121):
|
|
Packit |
562c7a |
return (x_1121)+(50)
|
|
Packit |
562c7a |
return g1498
|
|
Packit |
562c7a |
t_1122 = g1499()
|
|
Packit |
562c7a |
def g1497(f_1123):
|
|
Packit |
562c7a |
return t_1122(f_1123(1000))
|
|
Packit |
562c7a |
return g1497
|
|
Packit |
562c7a |
def g1496():
|
|
Packit |
562c7a |
def g1495(y_1120):
|
|
Packit |
562c7a |
return (y_1120)+(2000)
|
|
Packit |
562c7a |
return g1495
|
|
Packit |
562c7a |
return g1500()(g1496())
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1508():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1508()
|
|
Packit |
562c7a |
60
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1507():
|
|
Packit |
562c7a |
def g1506():
|
|
Packit |
562c7a |
def g1505():
|
|
Packit |
562c7a |
def g1502(a_1124):
|
|
Packit |
562c7a |
def g1503(b_1125):
|
|
Packit |
562c7a |
def g1504(c_1126):
|
|
Packit |
562c7a |
return (a_1124)+((b_1125)+(c_1126))
|
|
Packit |
562c7a |
return g1504
|
|
Packit |
562c7a |
return g1503
|
|
Packit |
562c7a |
return g1502
|
|
Packit |
562c7a |
return g1505()(10)
|
|
Packit |
562c7a |
return g1506()(20)
|
|
Packit |
562c7a |
return g1507()(30)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1513():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1513()
|
|
Packit |
562c7a |
5
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1512():
|
|
Packit |
562c7a |
def g1509(b_1127):
|
|
Packit |
562c7a |
def g1511():
|
|
Packit |
562c7a |
def g1510(a_1128):
|
|
Packit |
562c7a |
return (b_1127)+(a_1128)
|
|
Packit |
562c7a |
return g1510
|
|
Packit |
562c7a |
return g1511()(2)
|
|
Packit |
562c7a |
return g1509
|
|
Packit |
562c7a |
return g1512()(3)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1518():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1518()
|
|
Packit |
562c7a |
5
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1517():
|
|
Packit |
562c7a |
def g1516(f_1130):
|
|
Packit |
562c7a |
return f_1130(f_1130(5))
|
|
Packit |
562c7a |
return g1516
|
|
Packit |
562c7a |
def g1515():
|
|
Packit |
562c7a |
def g1514(x_1129):
|
|
Packit |
562c7a |
return x_1129
|
|
Packit |
562c7a |
return g1514
|
|
Packit |
562c7a |
return g1517()(g1515())
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def g1523():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> g1523()
|
|
Packit |
562c7a |
8000
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
def g1522():
|
|
Packit |
562c7a |
def g1521():
|
|
Packit |
562c7a |
def g1520(x_1131):
|
|
Packit |
562c7a |
return (x_1131)+(3000)
|
|
Packit |
562c7a |
return g1520
|
|
Packit |
562c7a |
f_1132 = g1521()
|
|
Packit |
562c7a |
def g1519(y_1133):
|
|
Packit |
562c7a |
return f_1132(f_1132(y_1133))
|
|
Packit |
562c7a |
return g1519
|
|
Packit |
562c7a |
return g1522()(2000)
|
|
Packit |
562c7a |
|