1# mode: run 2# tag: closures 3# preparse: id 4# preparse: def_to_cdef 5# 6# closure_tests_1.pyx 7# 8# Battery of tests for closures in Cython. Based on the collection of 9# compiler tests from P423/B629 at Indiana University, Spring 1999 and 10# Fall 2000. Special thanks to R. Kent Dybvig, Dan Friedman, Kevin 11# Millikin, and everyone else who helped to generate the original 12# tests. Converted into a collection of Python/Cython tests by Craig 13# Citro. 14# 15# Note: This set of tests is split (somewhat randomly) into several 16# files, simply because putting all the tests in a single file causes 17# gcc and g++ to buckle under the load. 18# 19 20def g1425(): 21 """ 22 >>> g1425() 23 142 24 """ 25 if (True): 26 def g1424(): 27 if (True): 28 return 122 29 return (20)+(g1424()) 30 else: 31 return 10000 32 33 34def g1432(): 35 """ 36 >>> g1432() 37 [0, []] 38 """ 39 def g1431(): 40 return [0,[]] 41 x_1056 = g1431() 42 if (x_1056): 43 def g1430(): 44 def g1429(): 45 return (x_1056[0]) 46 def g1428(): 47 return (x_1056[0]) 48 return (g1429())+(g1428()) 49 x_1056[0] = g1430() 50 return x_1056 51 52 53def g1435(): 54 """ 55 >>> g1435() 56 4000 57 """ 58 def g1434(): 59 def g1433(y_1057): 60 return y_1057 61 return g1433 62 return g1434()(4000) 63 64 65def g1438(): 66 """ 67 >>> g1438() 68 1 69 """ 70 def g1437(): 71 def g1436(x_1058): 72 return x_1058 73 return g1436 74 f_1059 = g1437() 75 return (f_1059(0)+1) 76 77 78def g1441(): 79 """ 80 >>> g1441() 81 4 82 """ 83 def g1440(): 84 def g1439(y_1060): 85 return y_1060 86 return g1439 87 f_1061 = g1440() 88 return f_1061(f_1061(4)) 89 90 91def g1446(): 92 """ 93 >>> g1446() 94 4 95 """ 96 def g1445(): 97 def g1444(f_1063): 98 return f_1063(f_1063(4)) 99 return g1444 100 def g1443(): 101 def g1442(y_1062): 102 return y_1062 103 return g1442 104 return g1445()(g1443()) 105 106 107def g1449(): 108 """ 109 >>> g1449() 110 9000 111 """ 112 def g1448(): 113 a_1064 = 4000 114 def g1447(b_1065): 115 return (a_1064)+(b_1065) 116 return g1447 117 return g1448()(5000) 118 119 120def g1454(): 121 """ 122 >>> g1454() 123 9000 124 """ 125 def g1453(): 126 def g1452(): 127 def g1450(a_1066): 128 def g1451(b_1067): 129 return (a_1066)+(b_1067) 130 return g1451 131 return g1450 132 return g1452()(4000) 133 return g1453()(5000) 134 135 136def g1459(): 137 """ 138 >>> g1459() 139 2 140 """ 141 def g1458(): 142 def g1457(f_1069): 143 return f_1069(f_1069(0)) 144 return g1457 145 def g1456(): 146 def g1455(x_1068): 147 return (x_1068+1) 148 return g1455 149 return g1458()(g1456()) 150 151 152def g1462(): 153 """ 154 >>> g1462() 155 0 156 """ 157 x_1072 = 0 158 def g1461(): 159 def g1460(x_1070): 160 return x_1070 161 return g1460 162 f_1071 = g1461() 163 a_1075 = f_1071(x_1072) 164 b_1074 = f_1071(x_1072) 165 c_1073 = f_1071(x_1072) 166 return ((a_1075)+(b_1074))+(c_1073) 167 168 169def g1465(): 170 """ 171 >>> g1465() 172 3 173 """ 174 x_1080 = 0 175 y_1079 = 1 176 z_1078 = 2 177 def g1464(): 178 def g1463(x_1076): 179 return x_1076 180 return g1463 181 f_1077 = g1464() 182 a_1083 = f_1077(x_1080) 183 b_1082 = f_1077(y_1079) 184 c_1081 = f_1077(z_1078) 185 return ((a_1083)+(b_1082))+(c_1081) 186 187 188def g1468(): 189 """ 190 >>> g1468() 191 0 192 """ 193 def g1467(): 194 def g1466(x_1085, y_1084): 195 return x_1085 196 return g1466 197 f_1086 = g1467() 198 a_1087 = f_1086(0, 1) 199 return f_1086(a_1087, a_1087) 200 201 202def g1471(): 203 """ 204 >>> g1471() 205 0 206 """ 207 x_1094 = 0 208 y_1093 = 1 209 z_1092 = 2 210 def g1470(): 211 def g1469(x_1090, y_1089, z_1088): 212 return x_1090 213 return g1469 214 f_1091 = g1470() 215 a_1097 = f_1091(x_1094, y_1093, z_1092) 216 b_1096 = y_1093 217 c_1095 = z_1092 218 return f_1091(a_1097, b_1096, c_1095) 219 220 221def g1474(): 222 """ 223 >>> g1474() 224 3 225 """ 226 def g1473(): 227 def g1472(a_1101, b_1100, c_1099, d_1098): 228 return (a_1101)+(d_1098) 229 return g1472 230 f_1102 = g1473() 231 return f_1102(0, 1, 2, 3) 232 233 234def g1478(): 235 """ 236 >>> g1478() 237 3 238 """ 239 def g1477(): 240 def g1476(x_1103): 241 return x_1103 242 return g1476 243 f_1104 = g1477() 244 def g1475(): 245 a_1107 = 0 246 b_1106 = 1 247 c_1105 = 2 248 return (f_1104(a_1107))+((f_1104(b_1106))+(f_1104(c_1105))) 249 return (f_1104(0))+(g1475()) 250 251 252def g1483(): 253 """ 254 >>> g1483() 255 """ 256 a_1108 = 0 257 def g1482(): 258 def g1481(): 259 return 0 260 return g1481 261 a_1110 = g1482() 262 def g1480(): 263 def g1479(): 264 return 11 265 return g1479 266 b_1109 = g1480() 267 a_1110 = 11 268 269 270def g1486(): 271 """ 272 >>> g1486() 273 """ 274 a_1111 = 0 275 def g1485(): 276 def g1484(): 277 a_1113 = 0 278 return g1484 279 a_1113 = g1485() 280 b_1112 = 11 281 return a_1113() 282 283 284def g1491(): 285 """ 286 >>> g1491() 287 0 288 """ 289 def g1490(): 290 def g1489(): 291 return 0 292 return g1489 293 a_1115 = g1490() 294 def g1488(): 295 def g1487(): 296 return 11 297 return g1487 298 b_1114 = g1488() 299 return a_1115() 300 301 302def g1494(): 303 """ 304 >>> g1494() 305 2 306 """ 307 def g1493(): 308 x_1116 = 1 309 def g1492(y_1117): 310 return (x_1116)+(y_1117) 311 return g1492 312 f_1118 = g1493() 313 x_1119 = 0 314 return f_1118(f_1118(x_1119)) 315 316 317def g1501(): 318 """ 319 >>> g1501() 320 3050 321 """ 322 def g1500(): 323 def g1499(): 324 def g1498(x_1121): 325 return (x_1121)+(50) 326 return g1498 327 t_1122 = g1499() 328 def g1497(f_1123): 329 return t_1122(f_1123(1000)) 330 return g1497 331 def g1496(): 332 def g1495(y_1120): 333 return (y_1120)+(2000) 334 return g1495 335 return g1500()(g1496()) 336 337 338def g1508(): 339 """ 340 >>> g1508() 341 60 342 """ 343 def g1507(): 344 def g1506(): 345 def g1505(): 346 def g1502(a_1124): 347 def g1503(b_1125): 348 def g1504(c_1126): 349 return (a_1124)+((b_1125)+(c_1126)) 350 return g1504 351 return g1503 352 return g1502 353 return g1505()(10) 354 return g1506()(20) 355 return g1507()(30) 356 357 358def g1513(): 359 """ 360 >>> g1513() 361 5 362 """ 363 def g1512(): 364 def g1509(b_1127): 365 def g1511(): 366 def g1510(a_1128): 367 return (b_1127)+(a_1128) 368 return g1510 369 return g1511()(2) 370 return g1509 371 return g1512()(3) 372 373 374def g1518(): 375 """ 376 >>> g1518() 377 5 378 """ 379 def g1517(): 380 def g1516(f_1130): 381 return f_1130(f_1130(5)) 382 return g1516 383 def g1515(): 384 def g1514(x_1129): 385 return x_1129 386 return g1514 387 return g1517()(g1515()) 388 389 390def g1523(): 391 """ 392 >>> g1523() 393 8000 394 """ 395 def g1522(): 396 def g1521(): 397 def g1520(x_1131): 398 return (x_1131)+(3000) 399 return g1520 400 f_1132 = g1521() 401 def g1519(y_1133): 402 return f_1132(f_1132(y_1133)) 403 return g1519 404 return g1522()(2000) 405 406