Blame tests/run/closure_tests_4.pyx

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