PageRenderTime 44ms CodeModel.GetById 15ms app.highlight 25ms RepoModel.GetById 0ms app.codeStats 0ms

/emacs-pymacs-0.25/tests/t01_pppp_works.py

#
Python | 1073 lines | 1066 code | 5 blank | 2 comment | 22 complexity | c7cd681557ac478cefcf3d0d23c89ad5 MD5 | raw file
Possible License(s): GPL-2.0
   1# -*- coding: utf-8 -*-
   2
   3# Checking if the Poor's Python Pre-Processor works.
   4
   5exec(compile(open('../pppp').read(), '../pppp', 'exec'))
   6
   7def setup_module(module):
   8    run.synclines = False
   9    run.context = {'TRUE': True, 'FALSE': False}
  10
  11def validate(input, expected):
  12
  13    def validate1(input, expected):
  14        fragments = []
  15        run.transform_file('pppp.py', input.splitlines(True), fragments.append)
  16        output = ''.join(fragments)
  17        assert output == expected, (output, expected)
  18
  19    validate1(input, expected)
  20    prefix = ' ' * run.indent
  21    validate1(
  22            ''.join([prefix + line for line in input.splitlines(True)]),
  23            ''.join([prefix + line for line in expected.splitlines(True)]))
  24
  25def test_none():
  26
  27    yield (validate,
  28            '',
  29
  30            '')
  31
  32    yield (validate,
  33            'line1\n',
  34
  35            'line1\n')
  36
  37    yield (validate,
  38            'line1\n'
  39            'line2\n',
  40
  41            'line1\n'
  42            'line2\n')
  43
  44def test_yes():
  45
  46    yield (validate,
  47            'if TRUE:\n'
  48            '    line1\n'
  49            'line2\n'
  50            'line3\n',
  51
  52            'line1\n'
  53            'line2\n'
  54            'line3\n')
  55
  56    yield (validate,
  57            'if TRUE:\n'
  58            '    line1\n'
  59            '    line2\n'
  60            'line3\n',
  61
  62            'line1\n'
  63            'line2\n'
  64            'line3\n')
  65
  66    yield (validate,
  67            'if TRUE:\n'
  68            '    line1\n'
  69            '    line2\n'
  70            '    line3\n',
  71
  72            'line1\n'
  73            'line2\n'
  74            'line3\n')
  75
  76    yield (validate,
  77            'line1\n'
  78            'if TRUE:\n'
  79            '    line2\n'
  80            'line3\n',
  81
  82            'line1\n'
  83            'line2\n'
  84            'line3\n')
  85
  86    yield (validate,
  87            'line1\n'
  88            'if TRUE:\n'
  89            '    line2\n'
  90            '    line3\n',
  91
  92            'line1\n'
  93            'line2\n'
  94            'line3\n')
  95
  96    yield (validate,
  97            'line1\n'
  98            'line2\n'
  99            'if TRUE:\n'
 100            '    line3\n',
 101
 102            'line1\n'
 103            'line2\n'
 104            'line3\n')
 105
 106    yield (validate,
 107            'if TRUE:\n'
 108            '    line1\n'
 109            'if TRUE:\n'
 110            '    line2\n'
 111            'line3\n',
 112
 113            'line1\n'
 114            'line2\n'
 115            'line3\n')
 116
 117    yield (validate,
 118            'if TRUE:\n'
 119            '    line1\n'
 120            'line2\n'
 121            'if TRUE:\n'
 122            '    line3\n',
 123
 124            'line1\n'
 125            'line2\n'
 126            'line3\n')
 127
 128    yield (validate,
 129            'if TRUE:\n'
 130            '    line1\n'
 131            'if TRUE:\n'
 132            '    line2\n'
 133            'if TRUE:\n'
 134            '    line3\n',
 135
 136            'line1\n'
 137            'line2\n'
 138            'line3\n')
 139
 140    yield (validate,
 141            'line1\n'
 142            'if TRUE:\n'
 143            '    line2\n'
 144            'if TRUE:\n'
 145            '    line3\n',
 146
 147            'line1\n'
 148            'line2\n'
 149            'line3\n')
 150
 151def test_no():
 152
 153    yield (validate,
 154            'if FALSE:\n'
 155            '    line1\n'
 156            'line2\n'
 157            'line3\n',
 158
 159            'line2\n'
 160            'line3\n')
 161
 162    yield (validate,
 163            'if FALSE:\n'
 164            '    line1\n'
 165            '    line2\n'
 166            'line3\n',
 167
 168            'line3\n')
 169
 170    yield (validate,
 171            'if FALSE:\n'
 172            '    line1\n'
 173            '    line2\n'
 174            '    line3\n',
 175
 176            '')
 177
 178    yield (validate,
 179            'line1\n'
 180            'if FALSE:\n'
 181            '    line2\n'
 182            'line3\n',
 183
 184            'line1\n'
 185            'line3\n')
 186
 187    yield (validate,
 188            'line1\n'
 189            'if FALSE:\n'
 190            '    line2\n'
 191            '    line3\n',
 192
 193            'line1\n')
 194
 195    yield (validate,
 196            'line1\n'
 197            'line2\n'
 198            'if FALSE:\n'
 199            '    line3\n',
 200
 201            'line1\n'
 202            'line2\n')
 203
 204    yield (validate,
 205            'if FALSE:\n'
 206            '    line1\n'
 207            'if FALSE:\n'
 208            '    line2\n'
 209            'line3\n',
 210
 211            'line3\n')
 212
 213    yield (validate,
 214            'if FALSE:\n'
 215            '    line1\n'
 216            'line2\n'
 217            'if FALSE:\n'
 218            '    line3\n',
 219
 220            'line2\n')
 221
 222    yield (validate,
 223            'if FALSE:\n'
 224            '    line1\n'
 225            'if FALSE:\n'
 226            '    line2\n'
 227            'if FALSE:\n'
 228            '    line3\n',
 229
 230            '')
 231
 232    yield (validate,
 233            'line1\n'
 234            'if FALSE:\n'
 235            '    line2\n'
 236            'if FALSE:\n'
 237            '    line3\n',
 238
 239            'line1\n')
 240
 241def test_unknown():
 242
 243    yield (validate,
 244            'line1\n'
 245            'if UNKNOWN:\n'
 246            '    line2\n'
 247            'line3\n',
 248
 249            'line1\n'
 250            'if UNKNOWN:\n'
 251            '    line2\n'
 252            'line3\n')
 253
 254    yield (validate,
 255            'if UNKNOWN:\n'
 256            '    line1\n'
 257            'if UNKNOWN:\n'
 258            '    line2\n'
 259            'if UNKNOWN:\n'
 260            '    line3\n',
 261
 262            'if UNKNOWN:\n'
 263            '    line1\n'
 264            'if UNKNOWN:\n'
 265            '    line2\n'
 266            'if UNKNOWN:\n'
 267            '    line3\n')
 268
 269def test_yes_else():
 270
 271    yield (validate,
 272            'if TRUE:\n'
 273            '    line1\n'
 274            'else:\n'
 275            '    line2\n'
 276            'line3\n',
 277
 278            'line1\n'
 279            'line3\n')
 280
 281    yield (validate,
 282            'if TRUE:\n'
 283            '    line1\n'
 284            '    line2\n'
 285            'else:\n'
 286            '    line3\n',
 287
 288            'line1\n'
 289            'line2\n')
 290
 291    yield (validate,
 292            'line1\n'
 293            'if TRUE:\n'
 294            '    line2\n'
 295            'else:\n'
 296            '    line3\n',
 297
 298            'line1\n'
 299            'line2\n')
 300
 301    yield (validate,
 302            'if TRUE:\n'
 303            '    line1\n'
 304            'if TRUE:\n'
 305            '    line2\n'
 306            'else:\n'
 307            '    line3\n',
 308
 309            'line1\n'
 310            'line2\n')
 311
 312    yield (validate,
 313            'if TRUE:\n'
 314            '    line1\n'
 315            'else:\n'
 316            '    line2\n'
 317            'if TRUE:\n'
 318            '    line3\n',
 319
 320            'line1\n'
 321            'line3\n')
 322
 323def test_no_else():
 324
 325    yield (validate,
 326            'if FALSE:\n'
 327            '    line1\n'
 328            'else:\n'
 329            '    line2\n'
 330            'line3\n',
 331
 332            'line2\n'
 333            'line3\n')
 334
 335    yield (validate,
 336            'if FALSE:\n'
 337            '    line1\n'
 338            '    line2\n'
 339            'else:\n'
 340            '    line3\n',
 341
 342            'line3\n')
 343
 344    yield (validate,
 345            'line1\n'
 346            'if FALSE:\n'
 347            '    line2\n'
 348            'else:\n'
 349            '    line3\n',
 350
 351            'line1\n'
 352            'line3\n')
 353
 354    yield (validate,
 355            'if FALSE:\n'
 356            '    line1\n'
 357            'if FALSE:\n'
 358            '    line2\n'
 359            'else:\n'
 360            '    line3\n',
 361
 362            'line3\n')
 363
 364    yield (validate,
 365            'if FALSE:\n'
 366            '    line1\n'
 367            'else:\n'
 368            '    line2\n'
 369            'if FALSE:\n'
 370            '    line3\n',
 371
 372            'line2\n')
 373
 374def test_unknown_else():
 375
 376    yield (validate,
 377            'line1\n'
 378            'if UNKNOWN:\n'
 379            '    line2\n'
 380            'else:\n'
 381            '    line3\n'
 382            'line4\n',
 383
 384            'line1\n'
 385            'if UNKNOWN:\n'
 386            '    line2\n'
 387            'else:\n'
 388            '    line3\n'
 389            'line4\n')
 390
 391def test_elif():
 392
 393    yield (validate,
 394            'line1\n'
 395            'if TRUE:\n'
 396            '    line2\n'
 397            'elif TRUE:\n'
 398            '    line3\n'
 399            'elif TRUE:\n'
 400            '    line4\n'
 401            'else:\n'
 402            '    line5\n'
 403            'line6\n',
 404
 405            'line1\n'
 406            'line2\n'
 407            'line6\n')
 408
 409    yield (validate,
 410            'line1\n'
 411            'if TRUE:\n'
 412            '    line2\n'
 413            'elif TRUE:\n'
 414            '    line3\n'
 415            'elif FALSE:\n'
 416            '    line4\n'
 417            'else:\n'
 418            '    line5\n'
 419            'line6\n',
 420
 421            'line1\n'
 422            'line2\n'
 423            'line6\n')
 424
 425    yield (validate,
 426            'line1\n'
 427            'if TRUE:\n'
 428            '    line2\n'
 429            'elif TRUE:\n'
 430            '    line3\n'
 431            'elif UNKNOWN:\n'
 432            '    line4\n'
 433            'else:\n'
 434            '    line5\n'
 435            'line6\n',
 436
 437            'line1\n'
 438            'line2\n'
 439            'line6\n')
 440
 441    yield (validate,
 442            'line1\n'
 443            'if TRUE:\n'
 444            '    line2\n'
 445            'elif FALSE:\n'
 446            '    line3\n'
 447            'elif TRUE:\n'
 448            '    line4\n'
 449            'else:\n'
 450            '    line5\n'
 451            'line6\n',
 452
 453            'line1\n'
 454            'line2\n'
 455            'line6\n')
 456
 457    yield (validate,
 458            'line1\n'
 459            'if TRUE:\n'
 460            '    line2\n'
 461            'elif FALSE:\n'
 462            '    line3\n'
 463            'elif FALSE:\n'
 464            '    line4\n'
 465            'else:\n'
 466            '    line5\n'
 467            'line6\n',
 468
 469            'line1\n'
 470            'line2\n'
 471            'line6\n')
 472
 473    yield (validate,
 474            'line1\n'
 475            'if TRUE:\n'
 476            '    line2\n'
 477            'elif FALSE:\n'
 478            '    line3\n'
 479            'elif UNKNOWN:\n'
 480            '    line4\n'
 481            'else:\n'
 482            '    line5\n'
 483            'line6\n',
 484
 485            'line1\n'
 486            'line2\n'
 487            'line6\n')
 488
 489    yield (validate,
 490            'line1\n'
 491            'if TRUE:\n'
 492            '    line2\n'
 493            'elif UNKNOWN:\n'
 494            '    line3\n'
 495            'elif TRUE:\n'
 496            '    line4\n'
 497            'else:\n'
 498            '    line5\n'
 499            'line6\n',
 500
 501            'line1\n'
 502            'line2\n'
 503            'line6\n')
 504
 505    yield (validate,
 506            'line1\n'
 507            'if TRUE:\n'
 508            '    line2\n'
 509            'elif UNKNOWN:\n'
 510            '    line3\n'
 511            'elif FALSE:\n'
 512            '    line4\n'
 513            'else:\n'
 514            '    line5\n'
 515            'line6\n',
 516
 517            'line1\n'
 518            'line2\n'
 519            'line6\n')
 520
 521    yield (validate,
 522            'line1\n'
 523            'if TRUE:\n'
 524            '    line2\n'
 525            'elif UNKNOWN:\n'
 526            '    line3\n'
 527            'elif UNKNOWN:\n'
 528            '    line4\n'
 529            'else:\n'
 530            '    line5\n'
 531            'line6\n',
 532
 533            'line1\n'
 534            'line2\n'
 535            'line6\n')
 536
 537    yield (validate,
 538            'line1\n'
 539            'if FALSE:\n'
 540            '    line2\n'
 541            'elif TRUE:\n'
 542            '    line3\n'
 543            'elif TRUE:\n'
 544            '    line4\n'
 545            'else:\n'
 546            '    line5\n'
 547            'line6\n',
 548
 549            'line1\n'
 550            'line3\n'
 551            'line6\n')
 552
 553    yield (validate,
 554            'line1\n'
 555            'if FALSE:\n'
 556            '    line2\n'
 557            'elif TRUE:\n'
 558            '    line3\n'
 559            'elif FALSE:\n'
 560            '    line4\n'
 561            'else:\n'
 562            '    line5\n'
 563            'line6\n',
 564
 565            'line1\n'
 566            'line3\n'
 567            'line6\n')
 568
 569    yield (validate,
 570            'line1\n'
 571            'if FALSE:\n'
 572            '    line2\n'
 573            'elif TRUE:\n'
 574            '    line3\n'
 575            'elif UNKNOWN:\n'
 576            '    line4\n'
 577            'else:\n'
 578            '    line5\n'
 579            'line6\n',
 580
 581            'line1\n'
 582            'line3\n'
 583            'line6\n')
 584
 585    yield (validate,
 586            'line1\n'
 587            'if FALSE:\n'
 588            '    line2\n'
 589            'elif FALSE:\n'
 590            '    line3\n'
 591            'elif TRUE:\n'
 592            '    line4\n'
 593            'else:\n'
 594            '    line5\n'
 595            'line6\n',
 596
 597            'line1\n'
 598            'line4\n'
 599            'line6\n')
 600
 601    yield (validate,
 602            'line1\n'
 603            'if FALSE:\n'
 604            '    line2\n'
 605            'elif FALSE:\n'
 606            '    line3\n'
 607            'elif FALSE:\n'
 608            '    line4\n'
 609            'else:\n'
 610            '    line5\n'
 611            'line6\n',
 612
 613            'line1\n'
 614            'line5\n'
 615            'line6\n')
 616
 617    yield (validate,
 618            'line1\n'
 619            'if FALSE:\n'
 620            '    line2\n'
 621            'elif FALSE:\n'
 622            '    line3\n'
 623            'elif UNKNOWN:\n'
 624            '    line4\n'
 625            'else:\n'
 626            '    line5\n'
 627            'line6\n',
 628
 629            'line1\n'
 630            'if UNKNOWN:\n'
 631            '    line4\n'
 632            'else:\n'
 633            '    line5\n'
 634            'line6\n')
 635
 636    yield (validate,
 637            'line1\n'
 638            'if FALSE:\n'
 639            '    line2\n'
 640            'elif UNKNOWN:\n'
 641            '    line3\n'
 642            'elif TRUE:\n'
 643            '    line4\n'
 644            'else:\n'
 645            '    line5\n'
 646            'line6\n',
 647
 648            'line1\n'
 649            'if UNKNOWN:\n'
 650            '    line3\n'
 651            'else:\n'
 652            '    line4\n'
 653            'line6\n')
 654
 655    yield (validate,
 656            'line1\n'
 657            'if FALSE:\n'
 658            '    line2\n'
 659            'elif UNKNOWN:\n'
 660            '    line3\n'
 661            'elif FALSE:\n'
 662            '    line4\n'
 663            'else:\n'
 664            '    line5\n'
 665            'line6\n',
 666
 667            'line1\n'
 668            'if UNKNOWN:\n'
 669            '    line3\n'
 670            'else:\n'
 671            '    line5\n'
 672            'line6\n')
 673
 674    yield (validate,
 675            'line1\n'
 676            'if FALSE:\n'
 677            '    line2\n'
 678            'elif UNKNOWN:\n'
 679            '    line3\n'
 680            'elif UNKNOWN:\n'
 681            '    line4\n'
 682            'else:\n'
 683            '    line5\n'
 684            'line6\n',
 685
 686            'line1\n'
 687            'if UNKNOWN:\n'
 688            '    line3\n'
 689            'elif UNKNOWN:\n'
 690            '    line4\n'
 691            'else:\n'
 692            '    line5\n'
 693            'line6\n')
 694
 695    yield (validate,
 696            'line1\n'
 697            'if UNKNOWN:\n'
 698            '    line2\n'
 699            'elif TRUE:\n'
 700            '    line3\n'
 701            'elif TRUE:\n'
 702            '    line4\n'
 703            'else:\n'
 704            '    line5\n'
 705            'line6\n',
 706
 707            'line1\n'
 708            'if UNKNOWN:\n'
 709            '    line2\n'
 710            'else:\n'
 711            '    line3\n'
 712            'line6\n')
 713
 714    yield (validate,
 715            'line1\n'
 716            'if UNKNOWN:\n'
 717            '    line2\n'
 718            'elif TRUE:\n'
 719            '    line3\n'
 720            'elif FALSE:\n'
 721            '    line4\n'
 722            'else:\n'
 723            '    line5\n'
 724            'line6\n',
 725
 726            'line1\n'
 727            'if UNKNOWN:\n'
 728            '    line2\n'
 729            'else:\n'
 730            '    line3\n'
 731            'line6\n')
 732
 733    yield (validate,
 734            'line1\n'
 735            'if UNKNOWN:\n'
 736            '    line2\n'
 737            'elif TRUE:\n'
 738            '    line3\n'
 739            'elif UNKNOWN:\n'
 740            '    line4\n'
 741            'else:\n'
 742            '    line5\n'
 743            'line6\n',
 744
 745            'line1\n'
 746            'if UNKNOWN:\n'
 747            '    line2\n'
 748            'else:\n'
 749            '    line3\n'
 750            'line6\n')
 751
 752    yield (validate,
 753            'line1\n'
 754            'if UNKNOWN:\n'
 755            '    line2\n'
 756            'elif FALSE:\n'
 757            '    line3\n'
 758            'elif TRUE:\n'
 759            '    line4\n'
 760            'else:\n'
 761            '    line5\n'
 762            'line6\n',
 763
 764            'line1\n'
 765            'if UNKNOWN:\n'
 766            '    line2\n'
 767            'else:\n'
 768            '    line4\n'
 769            'line6\n')
 770
 771    yield (validate,
 772            'line1\n'
 773            'if UNKNOWN:\n'
 774            '    line2\n'
 775            'elif FALSE:\n'
 776            '    line3\n'
 777            'elif FALSE:\n'
 778            '    line4\n'
 779            'else:\n'
 780            '    line5\n'
 781            'line6\n',
 782
 783            'line1\n'
 784            'if UNKNOWN:\n'
 785            '    line2\n'
 786            'else:\n'
 787            '    line5\n'
 788            'line6\n')
 789
 790    yield (validate,
 791            'line1\n'
 792            'if UNKNOWN:\n'
 793            '    line2\n'
 794            'elif FALSE:\n'
 795            '    line3\n'
 796            'elif UNKNOWN:\n'
 797            '    line4\n'
 798            'else:\n'
 799            '    line5\n'
 800            'line6\n',
 801
 802            'line1\n'
 803            'if UNKNOWN:\n'
 804            '    line2\n'
 805            'elif UNKNOWN:\n'
 806            '    line4\n'
 807            'else:\n'
 808            '    line5\n'
 809            'line6\n')
 810
 811    yield (validate,
 812            'line1\n'
 813            'if UNKNOWN:\n'
 814            '    line2\n'
 815            'elif UNKNOWN:\n'
 816            '    line3\n'
 817            'elif TRUE:\n'
 818            '    line4\n'
 819            'else:\n'
 820            '    line5\n'
 821            'line6\n',
 822
 823            'line1\n'
 824            'if UNKNOWN:\n'
 825            '    line2\n'
 826            'elif UNKNOWN:\n'
 827            '    line3\n'
 828            'else:\n'
 829            '    line4\n'
 830            'line6\n')
 831
 832    yield (validate,
 833            'line1\n'
 834            'if UNKNOWN:\n'
 835            '    line2\n'
 836            'elif UNKNOWN:\n'
 837            '    line3\n'
 838            'elif FALSE:\n'
 839            '    line4\n'
 840            'else:\n'
 841            '    line5\n'
 842            'line6\n',
 843
 844            'line1\n'
 845            'if UNKNOWN:\n'
 846            '    line2\n'
 847            'elif UNKNOWN:\n'
 848            '    line3\n'
 849            'else:\n'
 850            '    line5\n'
 851            'line6\n')
 852
 853    yield (validate,
 854            'line1\n'
 855            'if UNKNOWN:\n'
 856            '    line2\n'
 857            'elif UNKNOWN:\n'
 858            '    line3\n'
 859            'elif UNKNOWN:\n'
 860            '    line4\n'
 861            'else:\n'
 862            '    line5\n'
 863            'line6\n',
 864
 865            'line1\n'
 866            'if UNKNOWN:\n'
 867            '    line2\n'
 868            'elif UNKNOWN:\n'
 869            '    line3\n'
 870            'elif UNKNOWN:\n'
 871            '    line4\n'
 872            'else:\n'
 873            '    line5\n'
 874            'line6\n')
 875
 876def test_nesting():
 877
 878    yield (validate,
 879            'line1\n'
 880            'if TRUE:\n'
 881            '    line2\n'
 882            '    if TRUE:\n'
 883            '        line3\n'
 884            '    else:\n'
 885            '        line4\n'
 886            '    line5\n'
 887            'else:\n'
 888            '    line6\n'
 889            'line7\n',
 890
 891            'line1\n'
 892            'line2\n'
 893            'line3\n'
 894            'line5\n'
 895            'line7\n')
 896
 897    yield (validate,
 898            'line1\n'
 899            'if TRUE:\n'
 900            '    line2\n'
 901            '    if FALSE:\n'
 902            '        line3\n'
 903            '    else:\n'
 904            '        line4\n'
 905            '    line5\n'
 906            'else:\n'
 907            '    line6\n'
 908            'line7\n',
 909
 910            'line1\n'
 911            'line2\n'
 912            'line4\n'
 913            'line5\n'
 914            'line7\n')
 915
 916    yield (validate,
 917            'line1\n'
 918            'if TRUE:\n'
 919            '    line2\n'
 920            '    if UNKNOWN:\n'
 921            '        line3\n'
 922            '    else:\n'
 923            '        line4\n'
 924            '    line5\n'
 925            'else:\n'
 926            '    line6\n'
 927            'line7\n',
 928
 929            'line1\n'
 930            'line2\n'
 931            'if UNKNOWN:\n'
 932            '    line3\n'
 933            'else:\n'
 934            '    line4\n'
 935            'line5\n'
 936            'line7\n')
 937
 938    yield (validate,
 939            'line1\n'
 940            'if FALSE:\n'
 941            '    line2\n'
 942            '    if TRUE:\n'
 943            '        line3\n'
 944            '    else:\n'
 945            '        line4\n'
 946            '    line5\n'
 947            'else:\n'
 948            '    line6\n'
 949            'line7\n',
 950
 951            'line1\n'
 952            'line6\n'
 953            'line7\n')
 954
 955    yield (validate,
 956            'line1\n'
 957            'if FALSE:\n'
 958            '    line2\n'
 959            '    if FALSE:\n'
 960            '        line3\n'
 961            '    else:\n'
 962            '        line4\n'
 963            '    line5\n'
 964            'else:\n'
 965            '    line6\n'
 966            'line7\n',
 967
 968            'line1\n'
 969            'line6\n'
 970            'line7\n')
 971
 972    yield (validate,
 973            'line1\n'
 974            'if FALSE:\n'
 975            '    line2\n'
 976            '    if UNKNOWN:\n'
 977            '        line3\n'
 978            '    else:\n'
 979            '        line4\n'
 980            '    line5\n'
 981            'else:\n'
 982            '    line6\n'
 983            'line7\n',
 984
 985            'line1\n'
 986            'line6\n'
 987            'line7\n')
 988
 989    yield (validate,
 990            'line1\n'
 991            'if UNKNOWN:\n'
 992            '    line2\n'
 993            '    if TRUE:\n'
 994            '        line3\n'
 995            '    else:\n'
 996            '        line4\n'
 997            '    line5\n'
 998            'else:\n'
 999            '    line6\n'
1000            'line7\n',
1001
1002            'line1\n'
1003            'if UNKNOWN:\n'
1004            '    line2\n'
1005            '    line3\n'
1006            '    line5\n'
1007            'else:\n'
1008            '    line6\n'
1009            'line7\n')
1010
1011    yield (validate,
1012            'line1\n'
1013            'if UNKNOWN:\n'
1014            '    line2\n'
1015            '    if FALSE:\n'
1016            '        line3\n'
1017            '    else:\n'
1018            '        line4\n'
1019            '    line5\n'
1020            'else:\n'
1021            '    line6\n'
1022            'line7\n',
1023
1024            'line1\n'
1025            'if UNKNOWN:\n'
1026            '    line2\n'
1027            '    line4\n'
1028            '    line5\n'
1029            'else:\n'
1030            '    line6\n'
1031            'line7\n')
1032
1033    yield (validate,
1034            'line1\n'
1035            'if UNKNOWN:\n'
1036            '    line2\n'
1037            '    if UNKNOWN:\n'
1038            '        line3\n'
1039            '    else:\n'
1040            '        line4\n'
1041            '    line5\n'
1042            'else:\n'
1043            '    line6\n'
1044            'line7\n',
1045
1046            'line1\n'
1047            'if UNKNOWN:\n'
1048            '    line2\n'
1049            '    if UNKNOWN:\n'
1050            '        line3\n'
1051            '    else:\n'
1052            '        line4\n'
1053            '    line5\n'
1054            'else:\n'
1055            '    line6\n'
1056            'line7\n')
1057
1058def test_regression():
1059
1060    yield (validate,
1061            'if TRUE:\n'
1062            '    line1\n'
1063            'else:\n'
1064            '    line2\n'
1065            '    if FALSE:\n'
1066            '        line3\n'
1067            '    else:\n'
1068            '        line4\n'
1069            '    line5\n'
1070            'line6\n',
1071
1072            'line1\n'
1073            'line6\n')