# mode: run # tag: closures # preparse: id # preparse: def_to_cdef # # closure_tests_4.pyx # # Battery of tests for closures in Cython. Based on the collection of # compiler tests from P423/B629 at Indiana University, Spring 1999 and # Fall 2000. Special thanks to R. Kent Dybvig, Dan Friedman, Kevin # Millikin, and everyone else who helped to generate the original # tests. Converted into a collection of Python/Cython tests by Craig # Citro. # # Note: This set of tests is split (somewhat randomly) into several # files, simply because putting all the tests in a single file causes # gcc and g++ to buckle under the load. # def g1852(): """ >>> g1852() [3, 42] """ def g1851(): def g1850(x_1333): x_1334 = 3 return 3 return g1850 f_1332 = g1851() def g1848(): def g1847(x_1336): y_1337 = 14 y_1337 = 7 return y_1337 return g1847 g_1335 = g1848() def g1849(): return [g_1335,3] g_1335 = g1849() def g1846(): def g1845(x_1340): return x_1340 return g1845 h_1339 = g1846() z_1338 = 42 def g1844(): return (g_1335[1]) return [g1844(),h_1339(z_1338)] def g1864(): """ >>> g1864() True """ t_1342 = True f_1341 = False def g1863(): return [t_1342,f_1341] bools_1345 = g1863() def g1862(): def g1861(x_1343): if ((not x_1343)): return f_1341 else: return t_1342 return g1861 id_1344 = g1862() def g1860(): def g1857(x_1349): def g1859(): return x_1349 == 0 if (g1859()): def g1858(): return (bools_1345[0]) return id_1344(g1858()) else: return odd_1346((x_1349)-(1)) return g1857 even_1347 = g1860() def g1856(): def g1853(y_1348): def g1855(): return y_1348 == 0 if (g1855()): def g1854(): return (bools_1345[1]) return id_1344(g1854()) else: return even_1347((y_1348)-(1)) return g1853 odd_1346 = g1856() return odd_1346(5) def g1872(): """ >>> g1872() 35 """ a_1350 = 5 def g1871(): return [a_1350,6] b_1351 = g1871() def g1870(): def g1869(x_1352): return (x_1352)*(a_1350) return g1869 f_1353 = g1870() def g1867(): def g1866(): return (b_1351[0]) return (f_1353(a_1350))-(g1866()) if (g1867()): def g1868(): if ((not a_1350)): return (2)*(a_1350) else: return (2)+(a_1350) b_1351[0] = g1868() f_1353(a_1350) else: if ((not (not (f_1353(a_1350) < b_1351)))): (f_1353(a_1350)) def g1865(): return (b_1351[0]) return f_1353(g1865()) def g1885(): """ >>> g1885() 9 """ def g1884(): def g1883(x_1368, y_1367): if ((not x_1368)): return g_1355((x_1368+1), (y_1367+1)) else: return h_1354((x_1368)+(y_1367)) return g1883 f_1356 = g1884() def g1882(): def g1875(u_1359, v_1358): a_1361 = (u_1359)+(v_1358) b_1360 = (u_1359)*(v_1358) def g1881(): def g1876(d_1363): def g1880(): return [a_1361,b_1360] p_1365 = g1880() def g1879(): def g1877(m_1366): if ((m_1366 < u_1359)): return f_1356(m_1366, d_1363) else: def g1878(): return (p_1365[0]) return h_1354(g1878()) return g1877 q_1364 = g1879() return q_1364(f_1356(a_1361, b_1360)) return g1876 e_1362 = g1881() return e_1362(u_1359) return g1875 g_1355 = g1882() def g1874(): def g1873(w_1357): return w_1357 return g1873 h_1354 = g1874() return f_1356(4, 5) def g1897(): """ >>> g1897() 22 """ def g1896(): def g1890(x_1373): def g1895(): def g1894(): def g1893(): def g1891(y_1374): def g1892(z_1375): return (y_1374)+(z_1375) return g1892 return g1891 return g1893()(6) return g1894()(7) return (x_1373)+(g1895()) return g1890 f_1370 = g1896() def g1889(): def g1888(): def g1887(): def g1886(w_1372, u_1371): return (w_1372)+(u_1371) return g1886 return g1887()(8, 9) return (5)+(g1888()) g_1369 = g1889() return g_1369 def g1923(): """ >>> g1923() True """ y_1377 = [] z_1376 = 10 def g1911(): return [5,y_1377] test_ls_1378 = g1911() def g1922(): def g1913(f_1379): def g1921(): def g1918(g_1382): def g1920(): def g1919(x_1383): return g_1382(g_1382)(x_1383) return g1919 return f_1379(g1920()) return g1918 def g1917(): def g1914(g_1380): def g1916(): def g1915(x_1381): return g_1380(g_1380)(x_1381) return g1915 return f_1379(g1916()) return g1914 return g1921()(g1917()) return g1913 y_1377 = g1922() def g1912(): return [z_1376,test_ls_1378] test_ls_1378 = g1912() def g1910(): def g1906(ls_1385): def g1909(): return (ls_1385 == []) if (g1909()): return 0 else: def g1908(): def g1907(): return (ls_1385[1]) return length_1384(g1907()) return (1)+(g1908()) return g1906 length_1384 = g1910() len_1386 = length_1384(test_ls_1378) def g1905(): def g1904(): def g1903(): def g1898(len_1387): def g1899(ls_1388): def g1902(): return (ls_1388 == []) if (g1902()): return 0 else: def g1901(): def g1900(): return (ls_1388[1]) return len_1387(g1900()) return (1)+(g1901()) return g1899 return g1898 return y_1377(g1903()) length_1384 = g1904() return length_1384(test_ls_1378) return (g1905() == len_1386) def g1927(): """ >>> g1927() 0 """ def g1926(): def g1924(): def g1925(): return loop_1389() return g1925 return g1924 loop_1389 = g1926() loop_1389() return 0 def g1935(): """ >>> g1935() 668 """ def g1934(): def g1928(): def g1933(): def g1931(link_1392): def g1932(): return link_1392() return g1932 return g1931 loop_1391 = g1933() def g1930(): def g1929(): return 668 return g1929 return loop_1391(g1930()) return g1928 f_1390 = g1934() return f_1390()() def g1946(): """ >>> g1946() 14629 """ def g1945(): def g1944(): return 1 return g1944 if (g1945()): a_1393 = 2 def g1943(): def g1942(): def g1941(): def g1938(x_1394): def g1940(): def g1939(): a_1393 = 1 a_1393 = g1939() x_1395 = g1940() return x_1395 return g1938 return g1941()(1) if (g1942()): def g1937(): def g1936(): return None return (a_1393 == g1936()) if (g1937()): return True else: return False else: return False if (g1943()): return 778477 else: return 14629 def g1949(): """ >>> g1949() 2 """ def g1948(): def g1947(x_1396): return x_1396 return g1947 f_1397 = g1948() a_1398 = 1 return ((f_1397(a_1398))+(a_1398))*(a_1398) def g1952(): """ >>> g1952() 17 """ def g1951(): def g1950(x_1400, y_1399): return x_1400 return g1950 k_1401 = g1951() b_1402 = 17 return k_1401(k_1401(k_1401, 37), 37)(b_1402, (b_1402)*(b_1402)) def g1956(): """ >>> g1956() False """ def g1955(): def g1953(): n_1403 = 256 def g1954(): return ([0]*n_1403) v_1404 = g1954() v_1404[32] = n_1403 return v_1404[32] return g1953 f_1405 = g1955() return isinstance(f_1405(), list) def g1959(): """ >>> g1959() 60 """ w_1409 = 4 x_1408 = 8 y_1407 = 16 z_1406 = 32 def g1958(): def g1957(): return (w_1409)+((x_1408)+((y_1407)+(z_1406))) return g1957 f_1410 = g1958() return f_1410() def g1965(): """ >>> g1965() 37 """ def g1964(): def g1962(g_1412, u_1411): def g1963(): if (u_1411): return g_1412(37) else: return u_1411 return g_1412(g1963()) return g1962 f_1413 = g1964() def g1961(): def g1960(x_1414): return x_1414 return g1960 return f_1413(g1961(), 75) def g1971(): """ >>> g1971() 4687 """ def g1970(): def g1968(h_1416, u_1415): def g1969(): if (u_1415): return h_1416((u_1415)+(37)) else: return u_1415 return h_1416(g1969()) return g1968 f_1418 = g1970() w_1417 = 62 def g1967(): def g1966(x_1419): return (w_1417)-(x_1419) return g1966 return f_1418(g1967(), (75)*(w_1417)) def g1983(): """ >>> g1983() True """ t_1421 = True f_1420 = False def g1982(): return [t_1421,f_1420] bools_1424 = g1982() def g1981(): def g1980(x_1422): if ((not x_1422)): return f_1420 else: return t_1421 return g1980 id_1423 = g1981() def g1979(): def g1976(x_1428): def g1978(): def g1977(): return x_1428 == 0 return id_1423(g1977()) if (g1978()): return (bools_1424[0]) else: return odd_1425((x_1428)-(1)) return g1976 even_1426 = g1979() def g1975(): def g1972(y_1427): def g1974(): return y_1427 == 0 if (g1974()): def g1973(): return (bools_1424[1]) return id_1423(g1973()) else: return even_1426((y_1427)-(1)) return g1972 odd_1425 = g1975() return odd_1425(5) def g1990(): """ >>> g1990() 48 """ def g1989(): def g1984(x_1431, y_1430, z_1429): def g1988(): def g1987(u_1435, v_1434): x_1431 = u_1435 return (x_1431)+(v_1434) return g1987 f_1437 = g1988() def g1986(): def g1985(r_1433, s_1432): y_1430 = (z_1429)+(s_1432) return y_1430 return g1985 g_1436 = g1986() return (f_1437(1, 2))*(g_1436(3, 4)) return g1984 return g1989()(10, 11, 12) def g1997(): """ >>> g1997() 176 """ def g1996(): def g1991(x_1440, y_1439, z_1438): f_1444 = False def g1995(): def g1994(r_1442, s_1441): y_1439 = (z_1438)+(s_1441) return y_1439 return g1994 g_1443 = g1995() def g1993(): def g1992(u_1446, v_1445): v_1445 = u_1446 return (x_1440)+(v_1445) return g1992 f_1444 = g1993() return (f_1444(1, 2))*(g_1443(3, 4)) return g1991 return g1996()(10, 11, 12) def g2002(): """ >>> g2002() 5 """ def g2001(): def g2000(x_1450): return (x_1450)+(1) return g2000 f_1448 = g2001() def g1999(): def g1998(y_1449): return f_1448(f_1448(y_1449)) return g1998 g_1447 = g1999() return (f_1448(1))+(g_1447(1)) def g2010(): """ >>> g2010() 1521 """ y_1451 = 3 def g2009(): def g2007(x_1457): def g2008(): return x_1457 == 0 if (g2008()): return g_1453((x_1457)+(1)) else: return f_1454((x_1457)-(y_1451)) return g2007 f_1454 = g2009() def g2006(): def g2005(x_1456): return h_1452((x_1456)*(x_1456)) return g2005 g_1453 = g2006() def g2004(): def g2003(x_1455): return x_1455 return g2003 h_1452 = g2004() return g_1453(39) def g2017(): """ >>> g2017() -1 """ def g2014(): def g2013(x_1461): return (x_1461)+(1) return g2013 f_1459 = g2014() def g2012(): def g2011(y_1460): return f_1459(f_1459(y_1460)) return g2011 g_1458 = g2012() def g2016(): def g2015(x_1462): return (x_1462)-(1) return g2015 f_1459 = g2016() return (f_1459(1))+(g_1458(1)) def g2032(): """ >>> g2032() [52, [17, [35, [17, 35]]]] """ def g2031(): def g2030(): return (a_1465)+(b_1464) return g2030 f_1466 = g2031() a_1465 = 17 b_1464 = 35 def g2029(): def g2028(): def g2027(): return a_1465 return g2027 def g2026(): def g2025(): return b_1464 return g2025 return [g2028(),g2026()] h_1463 = g2029() def g2024(): def g2023(): def g2022(): def g2021(): def g2020(): return (h_1463[0]) return g2020()() def g2019(): def g2018(): return (h_1463[1]) return g2018()() return [g2021(),g2019()] return [b_1464,g2022()] return [a_1465,g2023()] return [f_1466(),g2024()] def g2038(): """ >>> g2038() 120 """ x_1469 = 5 def g2037(): a_1467 = 1 def g2036(): return a_1467 return g2036 th_1468 = g2037() def g2035(): def g2033(n_1472, th_1471): def g2034(): return n_1472 == 0 if (g2034()): return th_1471() else: return (n_1472)*(fact_1470((n_1472)-(1), th_1471)) return g2033 fact_1470 = g2035() return fact_1470(x_1469, th_1468) def g2046(): """ >>> g2046() [120, -120] """ def g2045(): def g2044(n_1473): return (n_1473 < 0) return g2044 negative_1474 = g2045() def g2043(): def g2041(n_1478): def g2042(): return n_1478 == 0 if (g2042()): return 1 else: return (n_1478)*(fact_1476((n_1478)-(1))) return g2041 fact_1476 = g2043() def g2040(): def g2039(n_1477): if ((not negative_1474(n_1477))): return fact_1476(n_1477) else: return (0)-(fact_1476((0)-(n_1477))) return g2039 call_fact_1475 = g2040() return [call_fact_1475(5),call_fact_1475(-5)] def g2050(): """ >>> g2050() [0, 1, 2, 3] """ def g2049(): def g2048(v_1482, i_1481, n_1480): if ((not (i_1481 == n_1480))): v_1482[i_1481] = i_1481 return iota_fill_1479(v_1482, (i_1481)+(1), n_1480) return g2048 iota_fill_1479 = g2049() n_1483 = 4 def g2047(): return ([0]*n_1483) v_1484 = g2047() iota_fill_1479(v_1484, 0, n_1483) return v_1484 def g2061(): """ >>> g2061() [[33, 55], [77, 99]] """ def g2060(): def g2059(): def g2058(): def g2057(): def g2051(a_1485): def g2052(b_1486): def g2053(c_1487): def g2054(d_1488): def g2056(): return [a_1485,b_1486] def g2055(): return [c_1487,d_1488] return [g2056(),g2055()] return g2054 return g2053 return g2052 return g2051 return g2057()(33) return g2058()(55) return g2059()(77) return g2060()(99) def g2075(): """ >>> g2075() [[[3, [21, [18, []]]], [4, [28, [24, []]]]], [[[0, [0, [0, []]]], [1, [7, [6, []]]]], [[408, 408], []]]] """ a_1489 = 17 def g2074(): def g2064(x_1490): x1_1492 = (x_1490)+(1) x2_1491 = (x_1490)+(2) y1_1494 = (x1_1492)*(7) y2_1493 = (x2_1491)*(7) z1_1496 = (y1_1494)-(x1_1492) z2_1495 = (y2_1493)-(x2_1491) w1_1498 = (z1_1496)*(a_1489) w2_1497 = (z2_1495)*(a_1489) def g2073(): def g2068(b_1500): if ((b_1500 == a_1489)): def g2072(): def g2071(): return [z1_1496,[]] return [y1_1494,g2071()] return [x1_1492,g2072()] else: def g2070(): def g2069(): return [z2_1495,[]] return [y2_1493,g2069()] return [x2_1491,g2070()] return g2068 g_1502 = g2073() def g2067(): def g2066(c_1499): if ((c_1499 == x_1490)): return w1_1498 else: return w2_1497 return g2066 h_1501 = g2067() def g2065(): if (((x_1490)*(x_1490) == (x_1490)+(x_1490))): return True else: return (x_1490 < 0) if (g2065()): return [g_1502(17),g_1502(16)] else: return [h_1501(x_1490),h_1501((x_1490)-(0))] return g2064 f_1503 = g2074() def g2063(): def g2062(): return [f_1503(3),[]] return [f_1503(-1),g2062()] return [f_1503(2),g2063()]