cython
1# mode: run
2# tag: closures
3# preparse: id
4# preparse: def_to_cdef
5#
6# closure_tests_3.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
20
21def g1649():
22"""
23>>> g1649()
246
25"""
26def g1648():
27def g1647(x_1211):
28return x_1211
29return g1647
30f_1212 = g1648()
31if (f_1212(True)):
32f_1212(3)
33f_1212(4)
34else:
35f_1212(5)
36return f_1212(6)
37
38
39def g1653():
40"""
41>>> g1653()
425
43"""
44def g1652():
45def g1651(x_1213):
46return (x_1213+1)
47return g1651
48f_1214 = g1652()
49def g1650():
50f_1215 = 3
51return (f_1215)+(1)
52return f_1214(g1650())
53
54
55def g1662():
56"""
57>>> g1662()
5851
59"""
60x_1223 = 15
61def g1661():
62def g1660(h_1219, v_1218):
63return (h_1219)*(v_1218)
64return g1660
65f_1222 = g1661()
66def g1659():
67def g1658(x_1217):
68return (x_1217)+(5)
69return g1658
70k_1221 = g1659()
71def g1657():
72def g1656(x_1216):
73return (x_1216+1)
74return g1656
75g_1220 = g1657()
76def g1655():
77def g1654():
78g_1224 = 3
79return f_1222(g_1224, x_1223)
80return g_1220(g1654())
81return k_1221(g1655())
82
83
84def g1665():
85"""
86>>> g1665()
875
88"""
89x_1225 = 4
90def g1664():
91def g1663():
92return x_1225
93return g1663
94f_1226 = g1664()
95x_1225 = 5
96return f_1226()
97
98
99def g1670():
100"""
101>>> g1670()
1025
103"""
104def g1669():
105def g1668():
106def g1667():
107def g1666():
108return 4
109return g1666
110y_1227 = g1667()
111return y_1227()
112return (g1668()+1)
113x_1228 = g1669()
114return x_1228
115
116
117def g1674():
118"""
119>>> g1674()
1201
121"""
122def g1673():
123def g1671(n_1230):
124def g1672():
125return n_1230 == 0
126if (g1672()):
127return 1
128else:
129return one_1229((n_1230-1))
130return g1671
131one_1229 = g1673()
132return one_1229(13)
133
134
135def g1681():
136"""
137>>> g1681()
138True
139"""
140def g1680():
141def g1678(x_1234):
142def g1679():
143return x_1234 == 0
144if (g1679()):
145return True
146else:
147return odd_1231((x_1234-1))
148return g1678
149even_1232 = g1680()
150def g1677():
151def g1675(x_1233):
152def g1676():
153return x_1233 == 0
154if (g1676()):
155return False
156else:
157return even_1232((x_1233-1))
158return g1675
159odd_1231 = g1677()
160return odd_1231(13)
161
162
163def g1688():
164"""
165>>> g1688()
166True
167"""
168t_1236 = True
169f_1235 = False
170def g1687():
171def g1685(x_1240):
172def g1686():
173return x_1240 == 0
174if (g1686()):
175return t_1236
176else:
177return odd_1237((x_1240-1))
178return g1685
179even_1238 = g1687()
180def g1684():
181def g1682(x_1239):
182def g1683():
183return x_1239 == 0
184if (g1683()):
185return f_1235
186else:
187return even_1238((x_1239-1))
188return g1682
189odd_1237 = g1684()
190return odd_1237(13)
191
192
193def g1698():
194"""
195>>> g1698()
196True
197"""
198def g1697():
199def g1696(x_1241):
200return x_1241
201return g1696
202even_1242 = g1697()
203def g1695():
204def g1694():
205def g1692(x_1246):
206def g1693():
207return x_1246 == 0
208if (g1693()):
209return True
210else:
211return odd_1243((x_1246-1))
212return g1692
213even_1244 = g1694()
214def g1691():
215def g1689(x_1245):
216def g1690():
217return x_1245 == 0
218if (g1690()):
219return False
220else:
221return even_1244((x_1245-1))
222return g1689
223odd_1243 = g1691()
224return odd_1243(13)
225return even_1242(g1695())
226
227
228def g1702():
229"""
230>>> g1702()
231120
232"""
233def g1701():
234def g1699(n_1248):
235def g1700():
236return n_1248 == 0
237if (g1700()):
238return 1
239else:
240return (n_1248)*(fact_1247((n_1248-1)))
241return g1699
242fact_1247 = g1701()
243return fact_1247(5)
244
245
246def g1716():
247"""
248>>> g1716()
24910
250"""
251x_1249 = 5
252def g1715():
253def g1713(u_1263, v_1262, w_1261):
254def g1714():
255return u_1263 == 0
256if (g1714()):
257return b_1251(v_1262, w_1261)
258else:
259return a_1252((u_1263)-(1), v_1262, w_1261)
260return g1713
261a_1252 = g1715()
262def g1712():
263def g1705(q_1255, r_1254):
264p_1256 = (q_1255)*(r_1254)
265def g1711():
266def g1709(n_1260):
267def g1710():
268return n_1260 == 0
269if (g1710()):
270return c_1250(p_1256)
271else:
272return o_1257((n_1260)-(1))
273return g1709
274e_1258 = g1711()
275def g1708():
276def g1706(n_1259):
277def g1707():
278return n_1259 == 0
279if (g1707()):
280return c_1250(x_1249)
281else:
282return e_1258((n_1259)-(1))
283return g1706
284o_1257 = g1708()
285return e_1258((q_1255)*(r_1254))
286return g1705
287b_1251 = g1712()
288def g1704():
289def g1703(x_1253):
290return (5)*(x_1253)
291return g1703
292c_1250 = g1704()
293return a_1252(3, 2, 1)
294
295
296def g1729():
297"""
298>>> g1729()
299537516
300"""
301def g1728():
302def g1727(x_1269):
303return (x_1269+1)
304return g1727
305f_1276 = g1728()
306def g1726():
307def g1725(x_1268):
308return (x_1268-1)
309return g1725
310g_1275 = g1726()
311def g1724():
312def g1723(x_1267):
313return (x_1267+1)
314return g1723
315t_1274 = g1724()
316def g1722():
317def g1721(x_1266):
318return (x_1266+1)
319return g1721
320j_1273 = g1722()
321def g1720():
322def g1719(x_1265):
323return (x_1265+1)
324return g1719
325i_1272 = g1720()
326def g1718():
327def g1717(x_1264):
328return (x_1264+1)
329return g1717
330h_1271 = g1718()
331x_1270 = 80
332a_1279 = f_1276(x_1270)
333b_1278 = g_1275(x_1270)
334c_1277 = h_1271(i_1272(j_1273(t_1274(x_1270))))
335return (a_1279)*((b_1278)*((c_1277)+(0)))
336
337
338def g1733():
339"""
340>>> g1733()
341120
342"""
343def g1732():
344def g1730(fact_1281, n_1280):
345def g1731():
346return n_1280 == 0
347if (g1731()):
348return 1
349else:
350return (fact_1281(fact_1281, (n_1280-1)))*(n_1280)
351return g1730
352fact_1282 = g1732()
353return fact_1282(fact_1282, 5)
354
355
356def g1737():
357"""
358>>> g1737()
35910000
360"""
361def g1736():
362def g1735(x_1283):
363return (x_1283)+(1000)
364return g1735
365f_1284 = g1736()
366def g1734():
367return f_1284(-2) == 0
368if (g1734()):
369return f_1284(6000)
370else:
371return f_1284(f_1284(8000))
372
373
374def g1741():
375"""
376>>> g1741()
37710000
378"""
379def g1740():
380def g1739(x_1285):
381return (x_1285)+(1000)
382return g1739
383f_1286 = g1740()
384def g1738():
385return f_1286(-1) == 0
386if (g1738()):
387return f_1286(6000)
388else:
389return f_1286(f_1286(8000))
390
391
392def g1747():
393"""
394>>> g1747()
3958000
396"""
397def g1746():
398def g1745(x_1288, y_1287):
399return (x_1288)+(1000)
400return g1745
401f_1289 = g1746()
402def g1744():
403def g1743():
404def g1742():
405return 0
406return f_1289(3000, g1742())
407if (g1743()):
408return f_1289(f_1289(4000, 0), 0)
409else:
410return 8000
411return (g1744())+(2000)
412
413
414def g1754():
415"""
416>>> g1754()
41724
418"""
419def g1753():
420def g1752():
421def g1751():
422def g1748(x_1290):
423def g1749(y_1291):
424def g1750(z_1292):
425return (x_1290)+((y_1291)+((z_1292)+(y_1291)))
426return g1750
427return g1749
428return g1748
429return g1751()(5)
430return g1752()(6)
431return g1753()(7)
432
433
434def g1765():
435"""
436>>> g1765()
43735
438"""
439def g1764():
440def g1763():
441def g1762():
442def g1761():
443def g1760():
444def g1755(x_1293):
445def g1756(y_1294):
446def g1757(z_1295):
447def g1758(w_1296):
448def g1759(u_1297):
449return (x_1293)+((y_1294)+((z_1295)+((w_1296)+(u_1297))))
450return g1759
451return g1758
452return g1757
453return g1756
454return g1755
455return g1760()(5)
456return g1761()(6)
457return g1762()(7)
458return g1763()(8)
459return g1764()(9)
460
461
462def g1769():
463"""
464>>> g1769()
465True
466"""
467def g1768():
468def g1767(x_1298):
469return x_1298
470return g1767
471f_1299 = g1768()
472def g1766():
473return hasattr(f_1299, '__call__')
474if (g1766()):
475return True
476else:
477return False
478
479
480def g1779():
481"""
482>>> g1779()
4836
484"""
485def g1778():
486def g1773(sum_1301, ls_1300):
487def g1777():
488return (ls_1300 == [])
489if (g1777()):
490return 0
491else:
492def g1776():
493return (ls_1300[0])
494def g1775():
495def g1774():
496return (ls_1300[1])
497return sum_1301(sum_1301, g1774())
498return (g1776())+(g1775())
499return g1773
500sum_1302 = g1778()
501def g1772():
502def g1771():
503def g1770():
504return [3,[]]
505return [2,g1770()]
506return [1,g1771()]
507return sum_1302(sum_1302, g1772())
508
509
510def g1785():
511"""
512>>> g1785()
5131500
514"""
515def g1784():
516def g1783():
517def g1780(a_1303):
518def g1781():
519def g1782():
520if (True):
521return 200
522(a_1303)+(g1782())
523return 1500
524return g1781
525return g1780
526return g1783()(1000)
527return g1784()()
528
529
530def g1791():
531"""
532>>> g1791()
533102
534"""
535def g1790():
536def g1789():
537def g1786(b_1304):
538def g1787(a_1305):
539def g1788():
540if (1):
541return 2
542a_1305 = g1788()
543return (a_1305)+(b_1304)
544return g1787
545return g1786
546return g1789()(100)
547return g1790()(200)
548
549
550def g1800():
551"""
552>>> g1800()
5532600
554"""
555def g1799():
556def g1798():
557def g1797():
558def g1792(a_1306):
559def g1793(b_1307):
560def g1794():
561if (b_1307):
562return 200
563a_1306 = g1794()
564def g1795(c_1308):
565def g1796():
566if (300):
567return 400
568c_1308 = g1796()
569return (a_1306)+((b_1307)+(c_1308))
570return g1795
571return g1793
572return g1792
573return g1797()(1000)
574return g1798()(2000)
575return g1799()(3000)
576
577
578def g1807():
579"""
580>>> g1807()
5813628800
582"""
583def g1806():
584def g1804(x_1310):
585def g1805():
586return x_1310 == 0
587if (g1805()):
588return 1
589else:
590return (x_1310)*(f_1309((x_1310)-(1)))
591return g1804
592f_1309 = g1806()
593def g1803():
594def g1801(a_1311):
595def g1802(b_1312):
596return a_1311(b_1312)
597return g1802
598return g1801
599g_1313 = g1803()
600return g_1313(f_1309)(10)
601
602
603def g1828():
604"""
605>>> g1828()
606[52, [44, [17, [44, [52, 17]]]]]
607"""
608def g1827():
609def g1826():
610return (a_1316)+(b_1315)
611return g1826
612f_1318 = g1827()
613def g1825():
614def g1822(y_1320):
615def g1824():
616def g1823(y_1321):
617return y_1321
618return g1823
619g_1317 = g1824()
620return (y_1320)+(y_1320)
621return g1822
622g_1317 = g1825()
623a_1316 = 17
624b_1315 = 35
625def g1821():
626def g1820():
627def g1819():
628return a_1316
629return g1819
630def g1818():
631def g1817(v_1319):
632a_1316 = v_1319
633return g1817
634return [g1820(),g1818()]
635h_1314 = g1821()
636x1_1324 = f_1318()
637x2_1323 = g_1317(22)
638def g1816():
639def g1815():
640return (h_1314[0])
641return g1815()()
642x3_1322 = g1816()
643x4_1325 = g_1317(22)
644def g1814():
645return (h_1314[1])
646g1814()(3)
647x5_1327 = f_1318()
648def g1813():
649def g1812():
650return (h_1314[0])
651return g1812()()
652x6_1326 = g1813()
653def g1811():
654def g1810():
655def g1809():
656def g1808():
657return [x5_1327,x6_1326]
658return [x4_1325,g1808()]
659return [x3_1322,g1809()]
660return [x2_1323,g1810()]
661return [x1_1324,g1811()]
662
663
664def g1843():
665"""
666>>> g1843()
667[52, [17, [35, [17, 35]]]]
668"""
669def g1842():
670def g1841():
671return (a_1330)+(b_1329)
672return g1841
673f_1331 = g1842()
674a_1330 = 17
675b_1329 = 35
676def g1840():
677def g1839():
678def g1838():
679return a_1330
680return g1838
681def g1837():
682def g1836():
683return b_1329
684return g1836
685return [g1839(),g1837()]
686h_1328 = g1840()
687def g1835():
688def g1834():
689def g1833():
690def g1832():
691def g1831():
692return (h_1328[0])
693return g1831()()
694def g1830():
695def g1829():
696return (h_1328[1])
697return g1829()()
698return [g1832(),g1830()]
699return [b_1329,g1833()]
700return [a_1330,g1834()]
701return [f_1331(),g1835()]
702
703