Blame tests/run/closure_tests_1.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_1.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
def g1425():
Packit 562c7a
    """
Packit 562c7a
    >>> g1425()
Packit 562c7a
    142
Packit 562c7a
    """
Packit 562c7a
    if (True):
Packit 562c7a
      def g1424():
Packit 562c7a
        if (True):
Packit 562c7a
          return 122
Packit 562c7a
      return (20)+(g1424())
Packit 562c7a
    else:
Packit 562c7a
      return 10000
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1432():
Packit 562c7a
    """
Packit 562c7a
    >>> g1432()
Packit 562c7a
    [0, []]
Packit 562c7a
    """
Packit 562c7a
    def g1431():
Packit 562c7a
      return [0,[]]
Packit 562c7a
    x_1056 = g1431()
Packit 562c7a
    if (x_1056):
Packit 562c7a
      def g1430():
Packit 562c7a
        def g1429():
Packit 562c7a
          return (x_1056[0])
Packit 562c7a
        def g1428():
Packit 562c7a
          return (x_1056[0])
Packit 562c7a
        return (g1429())+(g1428())
Packit 562c7a
      x_1056[0] = g1430()
Packit 562c7a
    return x_1056
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1435():
Packit 562c7a
    """
Packit 562c7a
    >>> g1435()
Packit 562c7a
    4000
Packit 562c7a
    """
Packit 562c7a
    def g1434():
Packit 562c7a
      def g1433(y_1057):
Packit 562c7a
        return y_1057
Packit 562c7a
      return g1433
Packit 562c7a
    return g1434()(4000)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1438():
Packit 562c7a
    """
Packit 562c7a
    >>> g1438()
Packit 562c7a
    1
Packit 562c7a
    """
Packit 562c7a
    def g1437():
Packit 562c7a
      def g1436(x_1058):
Packit 562c7a
        return x_1058
Packit 562c7a
      return g1436
Packit 562c7a
    f_1059 = g1437()
Packit 562c7a
    return (f_1059(0)+1)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1441():
Packit 562c7a
    """
Packit 562c7a
    >>> g1441()
Packit 562c7a
    4
Packit 562c7a
    """
Packit 562c7a
    def g1440():
Packit 562c7a
      def g1439(y_1060):
Packit 562c7a
        return y_1060
Packit 562c7a
      return g1439
Packit 562c7a
    f_1061 = g1440()
Packit 562c7a
    return f_1061(f_1061(4))
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1446():
Packit 562c7a
    """
Packit 562c7a
    >>> g1446()
Packit 562c7a
    4
Packit 562c7a
    """
Packit 562c7a
    def g1445():
Packit 562c7a
      def g1444(f_1063):
Packit 562c7a
        return f_1063(f_1063(4))
Packit 562c7a
      return g1444
Packit 562c7a
    def g1443():
Packit 562c7a
      def g1442(y_1062):
Packit 562c7a
        return y_1062
Packit 562c7a
      return g1442
Packit 562c7a
    return g1445()(g1443())
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1449():
Packit 562c7a
    """
Packit 562c7a
    >>> g1449()
Packit 562c7a
    9000
Packit 562c7a
    """
Packit 562c7a
    def g1448():
Packit 562c7a
      a_1064 = 4000
Packit 562c7a
      def g1447(b_1065):
Packit 562c7a
        return (a_1064)+(b_1065)
Packit 562c7a
      return g1447
Packit 562c7a
    return g1448()(5000)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1454():
Packit 562c7a
    """
Packit 562c7a
    >>> g1454()
Packit 562c7a
    9000
Packit 562c7a
    """
Packit 562c7a
    def g1453():
Packit 562c7a
      def g1452():
Packit 562c7a
        def g1450(a_1066):
Packit 562c7a
          def g1451(b_1067):
Packit 562c7a
            return (a_1066)+(b_1067)
Packit 562c7a
          return g1451
Packit 562c7a
        return g1450
Packit 562c7a
      return g1452()(4000)
Packit 562c7a
    return g1453()(5000)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1459():
Packit 562c7a
    """
Packit 562c7a
    >>> g1459()
Packit 562c7a
    2
Packit 562c7a
    """
Packit 562c7a
    def g1458():
Packit 562c7a
      def g1457(f_1069):
Packit 562c7a
        return f_1069(f_1069(0))
Packit 562c7a
      return g1457
Packit 562c7a
    def g1456():
Packit 562c7a
      def g1455(x_1068):
Packit 562c7a
        return (x_1068+1)
Packit 562c7a
      return g1455
Packit 562c7a
    return g1458()(g1456())
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1462():
Packit 562c7a
    """
Packit 562c7a
    >>> g1462()
Packit 562c7a
    0
Packit 562c7a
    """
Packit 562c7a
    x_1072 = 0
Packit 562c7a
    def g1461():
Packit 562c7a
      def g1460(x_1070):
Packit 562c7a
        return x_1070
Packit 562c7a
      return g1460
Packit 562c7a
    f_1071 = g1461()
Packit 562c7a
    a_1075 = f_1071(x_1072)
Packit 562c7a
    b_1074 = f_1071(x_1072)
Packit 562c7a
    c_1073 = f_1071(x_1072)
Packit 562c7a
    return ((a_1075)+(b_1074))+(c_1073)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1465():
Packit 562c7a
    """
Packit 562c7a
    >>> g1465()
Packit 562c7a
    3
Packit 562c7a
    """
Packit 562c7a
    x_1080 = 0
Packit 562c7a
    y_1079 = 1
Packit 562c7a
    z_1078 = 2
Packit 562c7a
    def g1464():
Packit 562c7a
      def g1463(x_1076):
Packit 562c7a
        return x_1076
Packit 562c7a
      return g1463
Packit 562c7a
    f_1077 = g1464()
Packit 562c7a
    a_1083 = f_1077(x_1080)
Packit 562c7a
    b_1082 = f_1077(y_1079)
Packit 562c7a
    c_1081 = f_1077(z_1078)
Packit 562c7a
    return ((a_1083)+(b_1082))+(c_1081)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1468():
Packit 562c7a
    """
Packit 562c7a
    >>> g1468()
Packit 562c7a
    0
Packit 562c7a
    """
Packit 562c7a
    def g1467():
Packit 562c7a
      def g1466(x_1085, y_1084):
Packit 562c7a
        return x_1085
Packit 562c7a
      return g1466
Packit 562c7a
    f_1086 = g1467()
Packit 562c7a
    a_1087 = f_1086(0, 1)
Packit 562c7a
    return f_1086(a_1087, a_1087)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1471():
Packit 562c7a
    """
Packit 562c7a
    >>> g1471()
Packit 562c7a
    0
Packit 562c7a
    """
Packit 562c7a
    x_1094 = 0
Packit 562c7a
    y_1093 = 1
Packit 562c7a
    z_1092 = 2
Packit 562c7a
    def g1470():
Packit 562c7a
      def g1469(x_1090, y_1089, z_1088):
Packit 562c7a
        return x_1090
Packit 562c7a
      return g1469
Packit 562c7a
    f_1091 = g1470()
Packit 562c7a
    a_1097 = f_1091(x_1094, y_1093, z_1092)
Packit 562c7a
    b_1096 = y_1093
Packit 562c7a
    c_1095 = z_1092
Packit 562c7a
    return f_1091(a_1097, b_1096, c_1095)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1474():
Packit 562c7a
    """
Packit 562c7a
    >>> g1474()
Packit 562c7a
    3
Packit 562c7a
    """
Packit 562c7a
    def g1473():
Packit 562c7a
      def g1472(a_1101, b_1100, c_1099, d_1098):
Packit 562c7a
        return (a_1101)+(d_1098)
Packit 562c7a
      return g1472
Packit 562c7a
    f_1102 = g1473()
Packit 562c7a
    return f_1102(0, 1, 2, 3)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1478():
Packit 562c7a
    """
Packit 562c7a
    >>> g1478()
Packit 562c7a
    3
Packit 562c7a
    """
Packit 562c7a
    def g1477():
Packit 562c7a
      def g1476(x_1103):
Packit 562c7a
        return x_1103
Packit 562c7a
      return g1476
Packit 562c7a
    f_1104 = g1477()
Packit 562c7a
    def g1475():
Packit 562c7a
      a_1107 = 0
Packit 562c7a
      b_1106 = 1
Packit 562c7a
      c_1105 = 2
Packit 562c7a
      return (f_1104(a_1107))+((f_1104(b_1106))+(f_1104(c_1105)))
Packit 562c7a
    return (f_1104(0))+(g1475())
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1483():
Packit 562c7a
    """
Packit 562c7a
    >>> g1483()
Packit 562c7a
    """
Packit 562c7a
    a_1108 = 0
Packit 562c7a
    def g1482():
Packit 562c7a
      def g1481():
Packit 562c7a
        return 0
Packit 562c7a
      return g1481
Packit 562c7a
    a_1110 = g1482()
Packit 562c7a
    def g1480():
Packit 562c7a
      def g1479():
Packit 562c7a
        return 11
Packit 562c7a
      return g1479
Packit 562c7a
    b_1109 = g1480()
Packit 562c7a
    a_1110 = 11
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1486():
Packit 562c7a
    """
Packit 562c7a
    >>> g1486()
Packit 562c7a
    """
Packit 562c7a
    a_1111 = 0
Packit 562c7a
    def g1485():
Packit 562c7a
      def g1484():
Packit 562c7a
        a_1113 = 0
Packit 562c7a
      return g1484
Packit 562c7a
    a_1113 = g1485()
Packit 562c7a
    b_1112 = 11
Packit 562c7a
    return a_1113()
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1491():
Packit 562c7a
    """
Packit 562c7a
    >>> g1491()
Packit 562c7a
    0
Packit 562c7a
    """
Packit 562c7a
    def g1490():
Packit 562c7a
      def g1489():
Packit 562c7a
        return 0
Packit 562c7a
      return g1489
Packit 562c7a
    a_1115 = g1490()
Packit 562c7a
    def g1488():
Packit 562c7a
      def g1487():
Packit 562c7a
        return 11
Packit 562c7a
      return g1487
Packit 562c7a
    b_1114 = g1488()
Packit 562c7a
    return a_1115()
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1494():
Packit 562c7a
    """
Packit 562c7a
    >>> g1494()
Packit 562c7a
    2
Packit 562c7a
    """
Packit 562c7a
    def g1493():
Packit 562c7a
      x_1116 = 1
Packit 562c7a
      def g1492(y_1117):
Packit 562c7a
        return (x_1116)+(y_1117)
Packit 562c7a
      return g1492
Packit 562c7a
    f_1118 = g1493()
Packit 562c7a
    x_1119 = 0
Packit 562c7a
    return f_1118(f_1118(x_1119))
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1501():
Packit 562c7a
    """
Packit 562c7a
    >>> g1501()
Packit 562c7a
    3050
Packit 562c7a
    """
Packit 562c7a
    def g1500():
Packit 562c7a
      def g1499():
Packit 562c7a
        def g1498(x_1121):
Packit 562c7a
          return (x_1121)+(50)
Packit 562c7a
        return g1498
Packit 562c7a
      t_1122 = g1499()
Packit 562c7a
      def g1497(f_1123):
Packit 562c7a
        return t_1122(f_1123(1000))
Packit 562c7a
      return g1497
Packit 562c7a
    def g1496():
Packit 562c7a
      def g1495(y_1120):
Packit 562c7a
        return (y_1120)+(2000)
Packit 562c7a
      return g1495
Packit 562c7a
    return g1500()(g1496())
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1508():
Packit 562c7a
    """
Packit 562c7a
    >>> g1508()
Packit 562c7a
    60
Packit 562c7a
    """
Packit 562c7a
    def g1507():
Packit 562c7a
      def g1506():
Packit 562c7a
        def g1505():
Packit 562c7a
          def g1502(a_1124):
Packit 562c7a
            def g1503(b_1125):
Packit 562c7a
              def g1504(c_1126):
Packit 562c7a
                return (a_1124)+((b_1125)+(c_1126))
Packit 562c7a
              return g1504
Packit 562c7a
            return g1503
Packit 562c7a
          return g1502
Packit 562c7a
        return g1505()(10)
Packit 562c7a
      return g1506()(20)
Packit 562c7a
    return g1507()(30)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1513():
Packit 562c7a
    """
Packit 562c7a
    >>> g1513()
Packit 562c7a
    5
Packit 562c7a
    """
Packit 562c7a
    def g1512():
Packit 562c7a
      def g1509(b_1127):
Packit 562c7a
        def g1511():
Packit 562c7a
          def g1510(a_1128):
Packit 562c7a
            return (b_1127)+(a_1128)
Packit 562c7a
          return g1510
Packit 562c7a
        return g1511()(2)
Packit 562c7a
      return g1509
Packit 562c7a
    return g1512()(3)
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1518():
Packit 562c7a
    """
Packit 562c7a
    >>> g1518()
Packit 562c7a
    5
Packit 562c7a
    """
Packit 562c7a
    def g1517():
Packit 562c7a
      def g1516(f_1130):
Packit 562c7a
        return f_1130(f_1130(5))
Packit 562c7a
      return g1516
Packit 562c7a
    def g1515():
Packit 562c7a
      def g1514(x_1129):
Packit 562c7a
        return x_1129
Packit 562c7a
      return g1514
Packit 562c7a
    return g1517()(g1515())
Packit 562c7a
Packit 562c7a
Packit 562c7a
def g1523():
Packit 562c7a
    """
Packit 562c7a
    >>> g1523()
Packit 562c7a
    8000
Packit 562c7a
    """
Packit 562c7a
    def g1522():
Packit 562c7a
      def g1521():
Packit 562c7a
        def g1520(x_1131):
Packit 562c7a
          return (x_1131)+(3000)
Packit 562c7a
        return g1520
Packit 562c7a
      f_1132 = g1521()
Packit 562c7a
      def g1519(y_1133):
Packit 562c7a
        return f_1132(f_1132(y_1133))
Packit 562c7a
      return g1519
Packit 562c7a
    return g1522()(2000)
Packit 562c7a