cython

Форк
0
/
closure_tests_4.pyx 
832 строки · 17.8 Кб
1
# mode: run
2
# tag: closures
3
# preparse: id
4
# preparse: def_to_cdef
5
#
6
# closure_tests_4.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

21
def g1852():
22
    """
23
    >>> g1852()
24
    [3, 42]
25
    """
26
    def g1851():
27
      def g1850(x_1333):
28
        x_1334 = 3
29
        return 3
30
      return g1850
31
    f_1332 = g1851()
32
    def g1848():
33
      def g1847(x_1336):
34
        y_1337 = 14
35
        y_1337 = 7
36
        return y_1337
37
      return g1847
38
    g_1335 = g1848()
39
    def g1849():
40
      return [g_1335,3]
41
    g_1335 = g1849()
42
    def g1846():
43
      def g1845(x_1340):
44
        return x_1340
45
      return g1845
46
    h_1339 = g1846()
47
    z_1338 = 42
48
    def g1844():
49
      return (g_1335[1])
50
    return [g1844(),h_1339(z_1338)]
51

52

53
def g1864():
54
    """
55
    >>> g1864()
56
    True
57
    """
58
    t_1342 = True
59
    f_1341 = False
60
    def g1863():
61
      return [t_1342,f_1341]
62
    bools_1345 = g1863()
63
    def g1862():
64
      def g1861(x_1343):
65
        if ((not x_1343)):
66
          return f_1341
67
        else:
68
          return t_1342
69
      return g1861
70
    id_1344 = g1862()
71
    def g1860():
72
      def g1857(x_1349):
73
        def g1859():
74
          return x_1349 == 0
75
        if (g1859()):
76
          def g1858():
77
            return (bools_1345[0])
78
          return id_1344(g1858())
79
        else:
80
          return odd_1346((x_1349)-(1))
81
      return g1857
82
    even_1347 = g1860()
83
    def g1856():
84
      def g1853(y_1348):
85
        def g1855():
86
          return y_1348 == 0
87
        if (g1855()):
88
          def g1854():
89
            return (bools_1345[1])
90
          return id_1344(g1854())
91
        else:
92
          return even_1347((y_1348)-(1))
93
      return g1853
94
    odd_1346 = g1856()
95
    return odd_1346(5)
96

97

98
def g1872():
99
    """
100
    >>> g1872()
101
    35
102
    """
103
    a_1350 = 5
104
    def g1871():
105
      return [a_1350,6]
106
    b_1351 = g1871()
107
    def g1870():
108
      def g1869(x_1352):
109
        return (x_1352)*(a_1350)
110
      return g1869
111
    f_1353 = g1870()
112
    def g1867():
113
      def g1866():
114
        return (b_1351[0])
115
      return (f_1353(a_1350))-(g1866())
116
    if (g1867()):
117
      def g1868():
118
        if ((not a_1350)):
119
          return (2)*(a_1350)
120
        else:
121
          return (2)+(a_1350)
122
      b_1351[0] = g1868()
123
      f_1353(a_1350)
124
    else:
125
      if ((not (not (f_1353(a_1350) < b_1351)))): (f_1353(a_1350))
126
    def g1865():
127
      return (b_1351[0])
128
    return f_1353(g1865())
129

130

131
def g1885():
132
    """
133
    >>> g1885()
134
    9
135
    """
136
    def g1884():
137
      def g1883(x_1368, y_1367):
138
        if ((not x_1368)):
139
          return g_1355((x_1368+1), (y_1367+1))
140
        else:
141
          return h_1354((x_1368)+(y_1367))
142
      return g1883
143
    f_1356 = g1884()
144
    def g1882():
145
      def g1875(u_1359, v_1358):
146
        a_1361 = (u_1359)+(v_1358)
147
        b_1360 = (u_1359)*(v_1358)
148
        def g1881():
149
          def g1876(d_1363):
150
            def g1880():
151
              return [a_1361,b_1360]
152
            p_1365 = g1880()
153
            def g1879():
154
              def g1877(m_1366):
155
                if ((m_1366 < u_1359)):
156
                  return f_1356(m_1366, d_1363)
157
                else:
158
                  def g1878():
159
                    return (p_1365[0])
160
                  return h_1354(g1878())
161
              return g1877
162
            q_1364 = g1879()
163
            return q_1364(f_1356(a_1361, b_1360))
164
          return g1876
165
        e_1362 = g1881()
166
        return e_1362(u_1359)
167
      return g1875
168
    g_1355 = g1882()
169
    def g1874():
170
      def g1873(w_1357):
171
        return w_1357
172
      return g1873
173
    h_1354 = g1874()
174
    return f_1356(4, 5)
175

176

177
def g1897():
178
    """
179
    >>> g1897()
180
    22
181
    """
182
    def g1896():
183
      def g1890(x_1373):
184
        def g1895():
185
          def g1894():
186
            def g1893():
187
              def g1891(y_1374):
188
                def g1892(z_1375):
189
                  return (y_1374)+(z_1375)
190
                return g1892
191
              return g1891
192
            return g1893()(6)
193
          return g1894()(7)
194
        return (x_1373)+(g1895())
195
      return g1890
196
    f_1370 = g1896()
197
    def g1889():
198
      def g1888():
199
        def g1887():
200
          def g1886(w_1372, u_1371):
201
            return (w_1372)+(u_1371)
202
          return g1886
203
        return g1887()(8, 9)
204
      return (5)+(g1888())
205
    g_1369 = g1889()
206
    return g_1369
207

208

209
def g1923():
210
    """
211
    >>> g1923()
212
    True
213
    """
214
    y_1377 = []
215
    z_1376 = 10
216
    def g1911():
217
      return [5,y_1377]
218
    test_ls_1378 = g1911()
219
    def g1922():
220
      def g1913(f_1379):
221
        def g1921():
222
          def g1918(g_1382):
223
            def g1920():
224
              def g1919(x_1383):
225
                return g_1382(g_1382)(x_1383)
226
              return g1919
227
            return f_1379(g1920())
228
          return g1918
229
        def g1917():
230
          def g1914(g_1380):
231
            def g1916():
232
              def g1915(x_1381):
233
                return g_1380(g_1380)(x_1381)
234
              return g1915
235
            return f_1379(g1916())
236
          return g1914
237
        return g1921()(g1917())
238
      return g1913
239
    y_1377 = g1922()
240
    def g1912():
241
      return [z_1376,test_ls_1378]
242
    test_ls_1378 = g1912()
243
    def g1910():
244
      def g1906(ls_1385):
245
        def g1909():
246
          return (ls_1385 == [])
247
        if (g1909()):
248
          return 0
249
        else:
250
          def g1908():
251
            def g1907():
252
              return (ls_1385[1])
253
            return length_1384(g1907())
254
          return (1)+(g1908())
255
      return g1906
256
    length_1384 = g1910()
257
    len_1386 = length_1384(test_ls_1378)
258
    def g1905():
259
      def g1904():
260
        def g1903():
261
          def g1898(len_1387):
262
            def g1899(ls_1388):
263
              def g1902():
264
                return (ls_1388 == [])
265
              if (g1902()):
266
                return 0
267
              else:
268
                def g1901():
269
                  def g1900():
270
                    return (ls_1388[1])
271
                  return len_1387(g1900())
272
                return (1)+(g1901())
273
            return g1899
274
          return g1898
275
        return y_1377(g1903())
276
      length_1384 = g1904()
277
      return length_1384(test_ls_1378)
278
    return (g1905() == len_1386)
279

280

281
def g1927():
282
    """
283
    >>> g1927()
284
    0
285
    """
286
    def g1926():
287
      def g1924():
288
        def g1925():
289
          return loop_1389()
290
        return g1925
291
      return g1924
292
    loop_1389 = g1926()
293
    loop_1389()
294
    return 0
295

296

297
def g1935():
298
    """
299
    >>> g1935()
300
    668
301
    """
302
    def g1934():
303
      def g1928():
304
        def g1933():
305
          def g1931(link_1392):
306
            def g1932():
307
              return link_1392()
308
            return g1932
309
          return g1931
310
        loop_1391 = g1933()
311
        def g1930():
312
          def g1929():
313
            return 668
314
          return g1929
315
        return loop_1391(g1930())
316
      return g1928
317
    f_1390 = g1934()
318
    return f_1390()()
319

320

321
def g1946():
322
    """
323
    >>> g1946()
324
    14629
325
    """
326
    def g1945():
327
      def g1944():
328
        return 1
329
      return g1944
330
    if (g1945()):
331
      a_1393 = 2
332
      def g1943():
333
        def g1942():
334
          def g1941():
335
            def g1938(x_1394):
336
              def g1940():
337
                def g1939():
338
                  a_1393 = 1
339
                a_1393 = g1939()
340
              x_1395 = g1940()
341
              return x_1395
342
            return g1938
343
          return g1941()(1)
344
        if (g1942()):
345
          def g1937():
346
            def g1936():
347
              return None
348
            return (a_1393 == g1936())
349
          if (g1937()):
350
            return True
351
          else:
352
            return False
353
        else:
354
          return False
355
      if (g1943()):
356
        return 778477
357
      else:
358
        return 14629
359

360

361
def g1949():
362
    """
363
    >>> g1949()
364
    2
365
    """
366
    def g1948():
367
      def g1947(x_1396):
368
        return x_1396
369
      return g1947
370
    f_1397 = g1948()
371
    a_1398 = 1
372
    return ((f_1397(a_1398))+(a_1398))*(a_1398)
373

374

375
def g1952():
376
    """
377
    >>> g1952()
378
    17
379
    """
380
    def g1951():
381
      def g1950(x_1400, y_1399):
382
        return x_1400
383
      return g1950
384
    k_1401 = g1951()
385
    b_1402 = 17
386
    return k_1401(k_1401(k_1401, 37), 37)(b_1402, (b_1402)*(b_1402))
387

388

389
def g1956():
390
    """
391
    >>> g1956()
392
    False
393
    """
394
    def g1955():
395
      def g1953():
396
        n_1403 = 256
397
        def g1954():
398
          return ([0]*n_1403)
399
        v_1404 = g1954()
400
        v_1404[32] = n_1403
401
        return v_1404[32]
402
      return g1953
403
    f_1405 = g1955()
404
    return isinstance(f_1405(), list)
405

406

407
def g1959():
408
    """
409
    >>> g1959()
410
    60
411
    """
412
    w_1409 = 4
413
    x_1408 = 8
414
    y_1407 = 16
415
    z_1406 = 32
416
    def g1958():
417
      def g1957():
418
        return (w_1409)+((x_1408)+((y_1407)+(z_1406)))
419
      return g1957
420
    f_1410 = g1958()
421
    return f_1410()
422

423

424
def g1965():
425
    """
426
    >>> g1965()
427
    37
428
    """
429
    def g1964():
430
      def g1962(g_1412, u_1411):
431
        def g1963():
432
          if (u_1411):
433
            return g_1412(37)
434
          else:
435
            return u_1411
436
        return g_1412(g1963())
437
      return g1962
438
    f_1413 = g1964()
439
    def g1961():
440
      def g1960(x_1414):
441
        return x_1414
442
      return g1960
443
    return f_1413(g1961(), 75)
444

445

446
def g1971():
447
    """
448
    >>> g1971()
449
    4687
450
    """
451
    def g1970():
452
      def g1968(h_1416, u_1415):
453
        def g1969():
454
          if (u_1415):
455
            return h_1416((u_1415)+(37))
456
          else:
457
            return u_1415
458
        return h_1416(g1969())
459
      return g1968
460
    f_1418 = g1970()
461
    w_1417 = 62
462
    def g1967():
463
      def g1966(x_1419):
464
        return (w_1417)-(x_1419)
465
      return g1966
466
    return f_1418(g1967(), (75)*(w_1417))
467

468

469
def g1983():
470
    """
471
    >>> g1983()
472
    True
473
    """
474
    t_1421 = True
475
    f_1420 = False
476
    def g1982():
477
      return [t_1421,f_1420]
478
    bools_1424 = g1982()
479
    def g1981():
480
      def g1980(x_1422):
481
        if ((not x_1422)):
482
          return f_1420
483
        else:
484
          return t_1421
485
      return g1980
486
    id_1423 = g1981()
487
    def g1979():
488
      def g1976(x_1428):
489
        def g1978():
490
          def g1977():
491
            return x_1428 == 0
492
          return id_1423(g1977())
493
        if (g1978()):
494
          return (bools_1424[0])
495
        else:
496
          return odd_1425((x_1428)-(1))
497
      return g1976
498
    even_1426 = g1979()
499
    def g1975():
500
      def g1972(y_1427):
501
        def g1974():
502
          return y_1427 == 0
503
        if (g1974()):
504
          def g1973():
505
            return (bools_1424[1])
506
          return id_1423(g1973())
507
        else:
508
          return even_1426((y_1427)-(1))
509
      return g1972
510
    odd_1425 = g1975()
511
    return odd_1425(5)
512

513

514
def g1990():
515
    """
516
    >>> g1990()
517
    48
518
    """
519
    def g1989():
520
      def g1984(x_1431, y_1430, z_1429):
521
        def g1988():
522
          def g1987(u_1435, v_1434):
523
            x_1431 = u_1435
524
            return (x_1431)+(v_1434)
525
          return g1987
526
        f_1437 = g1988()
527
        def g1986():
528
          def g1985(r_1433, s_1432):
529
            y_1430 = (z_1429)+(s_1432)
530
            return y_1430
531
          return g1985
532
        g_1436 = g1986()
533
        return (f_1437(1, 2))*(g_1436(3, 4))
534
      return g1984
535
    return g1989()(10, 11, 12)
536

537

538
def g1997():
539
    """
540
    >>> g1997()
541
    176
542
    """
543
    def g1996():
544
      def g1991(x_1440, y_1439, z_1438):
545
        f_1444 = False
546
        def g1995():
547
          def g1994(r_1442, s_1441):
548
            y_1439 = (z_1438)+(s_1441)
549
            return y_1439
550
          return g1994
551
        g_1443 = g1995()
552
        def g1993():
553
          def g1992(u_1446, v_1445):
554
            v_1445 = u_1446
555
            return (x_1440)+(v_1445)
556
          return g1992
557
        f_1444 = g1993()
558
        return (f_1444(1, 2))*(g_1443(3, 4))
559
      return g1991
560
    return g1996()(10, 11, 12)
561

562

563
def g2002():
564
    """
565
    >>> g2002()
566
    5
567
    """
568
    def g2001():
569
      def g2000(x_1450):
570
        return (x_1450)+(1)
571
      return g2000
572
    f_1448 = g2001()
573
    def g1999():
574
      def g1998(y_1449):
575
        return f_1448(f_1448(y_1449))
576
      return g1998
577
    g_1447 = g1999()
578
    return (f_1448(1))+(g_1447(1))
579

580

581
def g2010():
582
    """
583
    >>> g2010()
584
    1521
585
    """
586
    y_1451 = 3
587
    def g2009():
588
      def g2007(x_1457):
589
        def g2008():
590
          return x_1457 == 0
591
        if (g2008()):
592
          return g_1453((x_1457)+(1))
593
        else:
594
          return f_1454((x_1457)-(y_1451))
595
      return g2007
596
    f_1454 = g2009()
597
    def g2006():
598
      def g2005(x_1456):
599
        return h_1452((x_1456)*(x_1456))
600
      return g2005
601
    g_1453 = g2006()
602
    def g2004():
603
      def g2003(x_1455):
604
        return x_1455
605
      return g2003
606
    h_1452 = g2004()
607
    return g_1453(39)
608

609

610
def g2017():
611
    """
612
    >>> g2017()
613
    -1
614
    """
615
    def g2014():
616
      def g2013(x_1461):
617
        return (x_1461)+(1)
618
      return g2013
619
    f_1459 = g2014()
620
    def g2012():
621
      def g2011(y_1460):
622
        return f_1459(f_1459(y_1460))
623
      return g2011
624
    g_1458 = g2012()
625
    def g2016():
626
      def g2015(x_1462):
627
        return (x_1462)-(1)
628
      return g2015
629
    f_1459 = g2016()
630
    return (f_1459(1))+(g_1458(1))
631

632

633
def g2032():
634
    """
635
    >>> g2032()
636
    [52, [17, [35, [17, 35]]]]
637
    """
638
    def g2031():
639
      def g2030():
640
        return (a_1465)+(b_1464)
641
      return g2030
642
    f_1466 = g2031()
643
    a_1465 = 17
644
    b_1464 = 35
645
    def g2029():
646
      def g2028():
647
        def g2027():
648
          return a_1465
649
        return g2027
650
      def g2026():
651
        def g2025():
652
          return b_1464
653
        return g2025
654
      return [g2028(),g2026()]
655
    h_1463 = g2029()
656
    def g2024():
657
      def g2023():
658
        def g2022():
659
          def g2021():
660
            def g2020():
661
              return (h_1463[0])
662
            return g2020()()
663
          def g2019():
664
            def g2018():
665
              return (h_1463[1])
666
            return g2018()()
667
          return [g2021(),g2019()]
668
        return [b_1464,g2022()]
669
      return [a_1465,g2023()]
670
    return [f_1466(),g2024()]
671

672

673
def g2038():
674
    """
675
    >>> g2038()
676
    120
677
    """
678
    x_1469 = 5
679
    def g2037():
680
      a_1467 = 1
681
      def g2036():
682
        return a_1467
683
      return g2036
684
    th_1468 = g2037()
685
    def g2035():
686
      def g2033(n_1472, th_1471):
687
        def g2034():
688
          return n_1472 == 0
689
        if (g2034()):
690
          return th_1471()
691
        else:
692
          return (n_1472)*(fact_1470((n_1472)-(1), th_1471))
693
      return g2033
694
    fact_1470 = g2035()
695
    return fact_1470(x_1469, th_1468)
696

697

698
def g2046():
699
    """
700
    >>> g2046()
701
    [120, -120]
702
    """
703
    def g2045():
704
      def g2044(n_1473):
705
        return (n_1473 < 0)
706
      return g2044
707
    negative_1474 = g2045()
708
    def g2043():
709
      def g2041(n_1478):
710
        def g2042():
711
          return n_1478 == 0
712
        if (g2042()):
713
          return 1
714
        else:
715
          return (n_1478)*(fact_1476((n_1478)-(1)))
716
      return g2041
717
    fact_1476 = g2043()
718
    def g2040():
719
      def g2039(n_1477):
720
        if ((not negative_1474(n_1477))):
721
          return fact_1476(n_1477)
722
        else:
723
          return (0)-(fact_1476((0)-(n_1477)))
724
      return g2039
725
    call_fact_1475 = g2040()
726
    return [call_fact_1475(5),call_fact_1475(-5)]
727

728

729
def g2050():
730
    """
731
    >>> g2050()
732
    [0, 1, 2, 3]
733
    """
734
    def g2049():
735
      def g2048(v_1482, i_1481, n_1480):
736
        if ((not (i_1481 == n_1480))):
737
          v_1482[i_1481] = i_1481
738
          return iota_fill_1479(v_1482, (i_1481)+(1), n_1480)
739
      return g2048
740
    iota_fill_1479 = g2049()
741
    n_1483 = 4
742
    def g2047():
743
      return ([0]*n_1483)
744
    v_1484 = g2047()
745
    iota_fill_1479(v_1484, 0, n_1483)
746
    return v_1484
747

748

749
def g2061():
750
    """
751
    >>> g2061()
752
    [[33, 55], [77, 99]]
753
    """
754
    def g2060():
755
      def g2059():
756
        def g2058():
757
          def g2057():
758
            def g2051(a_1485):
759
              def g2052(b_1486):
760
                def g2053(c_1487):
761
                  def g2054(d_1488):
762
                    def g2056():
763
                      return [a_1485,b_1486]
764
                    def g2055():
765
                      return [c_1487,d_1488]
766
                    return [g2056(),g2055()]
767
                  return g2054
768
                return g2053
769
              return g2052
770
            return g2051
771
          return g2057()(33)
772
        return g2058()(55)
773
      return g2059()(77)
774
    return g2060()(99)
775

776

777
def g2075():
778
    """
779
    >>> g2075()
780
    [[[3, [21, [18, []]]], [4, [28, [24, []]]]], [[[0, [0, [0, []]]], [1, [7, [6, []]]]], [[408, 408], []]]]
781
    """
782
    a_1489 = 17
783
    def g2074():
784
      def g2064(x_1490):
785
        x1_1492 = (x_1490)+(1)
786
        x2_1491 = (x_1490)+(2)
787
        y1_1494 = (x1_1492)*(7)
788
        y2_1493 = (x2_1491)*(7)
789
        z1_1496 = (y1_1494)-(x1_1492)
790
        z2_1495 = (y2_1493)-(x2_1491)
791
        w1_1498 = (z1_1496)*(a_1489)
792
        w2_1497 = (z2_1495)*(a_1489)
793
        def g2073():
794
          def g2068(b_1500):
795
            if ((b_1500 == a_1489)):
796
              def g2072():
797
                def g2071():
798
                  return [z1_1496,[]]
799
                return [y1_1494,g2071()]
800
              return [x1_1492,g2072()]
801
            else:
802
              def g2070():
803
                def g2069():
804
                  return [z2_1495,[]]
805
                return [y2_1493,g2069()]
806
              return [x2_1491,g2070()]
807
          return g2068
808
        g_1502 = g2073()
809
        def g2067():
810
          def g2066(c_1499):
811
            if ((c_1499 == x_1490)):
812
              return w1_1498
813
            else:
814
              return w2_1497
815
          return g2066
816
        h_1501 = g2067()
817
        def g2065():
818
          if (((x_1490)*(x_1490) == (x_1490)+(x_1490))):
819
            return True
820
          else:
821
            return (x_1490 < 0)
822
        if (g2065()):
823
          return [g_1502(17),g_1502(16)]
824
        else:
825
          return [h_1501(x_1490),h_1501((x_1490)-(0))]
826
      return g2064
827
    f_1503 = g2074()
828
    def g2063():
829
      def g2062():
830
        return [f_1503(3),[]]
831
      return [f_1503(-1),g2062()]
832
    return [f_1503(2),g2063()]
833

834

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.