Blob Blame History Raw
# mode: run
# tag: closures
# preparse: id
# preparse: def_to_cdef
#
# closure_tests_1.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 g1425():
    """
    >>> g1425()
    142
    """
    if (True):
      def g1424():
        if (True):
          return 122
      return (20)+(g1424())
    else:
      return 10000


def g1432():
    """
    >>> g1432()
    [0, []]
    """
    def g1431():
      return [0,[]]
    x_1056 = g1431()
    if (x_1056):
      def g1430():
        def g1429():
          return (x_1056[0])
        def g1428():
          return (x_1056[0])
        return (g1429())+(g1428())
      x_1056[0] = g1430()
    return x_1056


def g1435():
    """
    >>> g1435()
    4000
    """
    def g1434():
      def g1433(y_1057):
        return y_1057
      return g1433
    return g1434()(4000)


def g1438():
    """
    >>> g1438()
    1
    """
    def g1437():
      def g1436(x_1058):
        return x_1058
      return g1436
    f_1059 = g1437()
    return (f_1059(0)+1)


def g1441():
    """
    >>> g1441()
    4
    """
    def g1440():
      def g1439(y_1060):
        return y_1060
      return g1439
    f_1061 = g1440()
    return f_1061(f_1061(4))


def g1446():
    """
    >>> g1446()
    4
    """
    def g1445():
      def g1444(f_1063):
        return f_1063(f_1063(4))
      return g1444
    def g1443():
      def g1442(y_1062):
        return y_1062
      return g1442
    return g1445()(g1443())


def g1449():
    """
    >>> g1449()
    9000
    """
    def g1448():
      a_1064 = 4000
      def g1447(b_1065):
        return (a_1064)+(b_1065)
      return g1447
    return g1448()(5000)


def g1454():
    """
    >>> g1454()
    9000
    """
    def g1453():
      def g1452():
        def g1450(a_1066):
          def g1451(b_1067):
            return (a_1066)+(b_1067)
          return g1451
        return g1450
      return g1452()(4000)
    return g1453()(5000)


def g1459():
    """
    >>> g1459()
    2
    """
    def g1458():
      def g1457(f_1069):
        return f_1069(f_1069(0))
      return g1457
    def g1456():
      def g1455(x_1068):
        return (x_1068+1)
      return g1455
    return g1458()(g1456())


def g1462():
    """
    >>> g1462()
    0
    """
    x_1072 = 0
    def g1461():
      def g1460(x_1070):
        return x_1070
      return g1460
    f_1071 = g1461()
    a_1075 = f_1071(x_1072)
    b_1074 = f_1071(x_1072)
    c_1073 = f_1071(x_1072)
    return ((a_1075)+(b_1074))+(c_1073)


def g1465():
    """
    >>> g1465()
    3
    """
    x_1080 = 0
    y_1079 = 1
    z_1078 = 2
    def g1464():
      def g1463(x_1076):
        return x_1076
      return g1463
    f_1077 = g1464()
    a_1083 = f_1077(x_1080)
    b_1082 = f_1077(y_1079)
    c_1081 = f_1077(z_1078)
    return ((a_1083)+(b_1082))+(c_1081)


def g1468():
    """
    >>> g1468()
    0
    """
    def g1467():
      def g1466(x_1085, y_1084):
        return x_1085
      return g1466
    f_1086 = g1467()
    a_1087 = f_1086(0, 1)
    return f_1086(a_1087, a_1087)


def g1471():
    """
    >>> g1471()
    0
    """
    x_1094 = 0
    y_1093 = 1
    z_1092 = 2
    def g1470():
      def g1469(x_1090, y_1089, z_1088):
        return x_1090
      return g1469
    f_1091 = g1470()
    a_1097 = f_1091(x_1094, y_1093, z_1092)
    b_1096 = y_1093
    c_1095 = z_1092
    return f_1091(a_1097, b_1096, c_1095)


def g1474():
    """
    >>> g1474()
    3
    """
    def g1473():
      def g1472(a_1101, b_1100, c_1099, d_1098):
        return (a_1101)+(d_1098)
      return g1472
    f_1102 = g1473()
    return f_1102(0, 1, 2, 3)


def g1478():
    """
    >>> g1478()
    3
    """
    def g1477():
      def g1476(x_1103):
        return x_1103
      return g1476
    f_1104 = g1477()
    def g1475():
      a_1107 = 0
      b_1106 = 1
      c_1105 = 2
      return (f_1104(a_1107))+((f_1104(b_1106))+(f_1104(c_1105)))
    return (f_1104(0))+(g1475())


def g1483():
    """
    >>> g1483()
    """
    a_1108 = 0
    def g1482():
      def g1481():
        return 0
      return g1481
    a_1110 = g1482()
    def g1480():
      def g1479():
        return 11
      return g1479
    b_1109 = g1480()
    a_1110 = 11


def g1486():
    """
    >>> g1486()
    """
    a_1111 = 0
    def g1485():
      def g1484():
        a_1113 = 0
      return g1484
    a_1113 = g1485()
    b_1112 = 11
    return a_1113()


def g1491():
    """
    >>> g1491()
    0
    """
    def g1490():
      def g1489():
        return 0
      return g1489
    a_1115 = g1490()
    def g1488():
      def g1487():
        return 11
      return g1487
    b_1114 = g1488()
    return a_1115()


def g1494():
    """
    >>> g1494()
    2
    """
    def g1493():
      x_1116 = 1
      def g1492(y_1117):
        return (x_1116)+(y_1117)
      return g1492
    f_1118 = g1493()
    x_1119 = 0
    return f_1118(f_1118(x_1119))


def g1501():
    """
    >>> g1501()
    3050
    """
    def g1500():
      def g1499():
        def g1498(x_1121):
          return (x_1121)+(50)
        return g1498
      t_1122 = g1499()
      def g1497(f_1123):
        return t_1122(f_1123(1000))
      return g1497
    def g1496():
      def g1495(y_1120):
        return (y_1120)+(2000)
      return g1495
    return g1500()(g1496())


def g1508():
    """
    >>> g1508()
    60
    """
    def g1507():
      def g1506():
        def g1505():
          def g1502(a_1124):
            def g1503(b_1125):
              def g1504(c_1126):
                return (a_1124)+((b_1125)+(c_1126))
              return g1504
            return g1503
          return g1502
        return g1505()(10)
      return g1506()(20)
    return g1507()(30)


def g1513():
    """
    >>> g1513()
    5
    """
    def g1512():
      def g1509(b_1127):
        def g1511():
          def g1510(a_1128):
            return (b_1127)+(a_1128)
          return g1510
        return g1511()(2)
      return g1509
    return g1512()(3)


def g1518():
    """
    >>> g1518()
    5
    """
    def g1517():
      def g1516(f_1130):
        return f_1130(f_1130(5))
      return g1516
    def g1515():
      def g1514(x_1129):
        return x_1129
      return g1514
    return g1517()(g1515())


def g1523():
    """
    >>> g1523()
    8000
    """
    def g1522():
      def g1521():
        def g1520(x_1131):
          return (x_1131)+(3000)
        return g1520
      f_1132 = g1521()
      def g1519(y_1133):
        return f_1132(f_1132(y_1133))
      return g1519
    return g1522()(2000)