Advertisement
minh_tran_782

ParserSuite

Mar 11th, 2023 (edited)
837
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 31.89 KB | None | 1 0
  1. import unittest
  2. from TestUtils import TestParser
  3.  
  4.  
  5. class ParserSuite(unittest.TestCase):
  6. #----------------- [TEST VARIABLE DECLARATION] -----------------#
  7.     def test_0(self):
  8.         input = """x  : integer;"""
  9.         expect = "successful"
  10.         self.assertTrue(TestParser.test(input, expect, 200))
  11.     def test_1(self):
  12.         input = """x : string; """
  13.         expect = "successful"
  14.         self.assertTrue(TestParser.test(input, expect, 201))
  15.  
  16.     def test_2(self):
  17.         input = """x : float;"""
  18.         expect = "successful"
  19.         self.assertTrue(TestParser.test(input, expect, 204))
  20.  
  21.     def test_3(self):
  22.         input = """x : boolean;"""
  23.         expect = "successful"
  24.         self.assertTrue(TestParser.test(input, expect, 204))
  25.  
  26.     def test_4(self):
  27.         input = """x : float;"""
  28.         expect = "successful"
  29.         self.assertTrue(TestParser.test(input, expect, 205))
  30.  
  31.     def test_5(self):
  32.         # Test declaration array
  33.         input = """test_array: array [2,3] of integer;"""
  34.         expect = "successful"
  35.         self.assertTrue(TestParser.test(input, expect, 206))
  36.  
  37.     def test_6(self):
  38.         # Test declaration array
  39.         input = """tes1, test2 : array [3,4] of string;"""
  40.         expect = "successful"
  41.         self.assertTrue(TestParser.test(input, expect, 206))
  42.  
  43.     def test_7(self):
  44.         input = """x,y,z : integer = 1,2,3;"""
  45.         expect = "successful"
  46.         self.assertTrue(TestParser.test(input, expect, 207))
  47.  
  48.     def test_8(self):
  49.         input = """x,y : float = 1.1 , 0.1 ;"""
  50.         expect = "successful"
  51.         self.assertTrue(TestParser.test(input, expect, 208))
  52.  
  53.     def test_9(self):
  54.         input = """x,y : boolean = true, false;"""
  55.         expect = "successful"
  56.         self.assertTrue(TestParser.test(input, expect, 209))
  57.  
  58.     def test_10(self):
  59.         input = """x,y : string = "HCMUT","K20";  """
  60.         expect = "successful"
  61.         self.assertTrue(TestParser.test(input, expect, 210))
  62.  
  63.     def test_11(self): #false
  64.         #Miss SEMI
  65.         input = """x: integer"""
  66.         expect = "Error on line 1 col 10: <EOF>"
  67.         self.assertTrue(TestParser.test(input, expect, 211))
  68.  
  69.     def test_12(self):
  70.         #Miss semi
  71.         input = """x,y,z : integer = 1,2,3;"""
  72.         expect = "successful"
  73.         self.assertTrue(TestParser.test(input, expect, 212))
  74.  
  75.     def test_13(self): #false
  76.         #Miss SEMI
  77.         input = """x:string """
  78.         expect = "Error on line 1 col 9: <EOF>"
  79.         self.assertTrue(TestParser.test(input, expect, 213))
  80.  
  81.     def test_14(self):
  82.         #Miss semi
  83.         input = """x,y,z : string = 1,2,3;"""
  84.         expect = "successful"
  85.         self.assertTrue(TestParser.test(input, expect, 214))
  86. #----------------- [TEST FUNCTION DECLARATION] -----------------#
  87.     def test_15(self):
  88.         input = '''
  89.            function mess: integer (n: integer){
  90.                return n/50 * 2;
  91.            }
  92.        '''
  93.         expect = "Error on line 2 col 12: function"
  94.         self.assertTrue(TestParser.test(input, expect, 215))
  95.  
  96.     def test_16(self):
  97.         input = '''
  98.            function {
  99.  
  100.            }
  101.        '''
  102.         expect = "Error on line 2 col 12: function"
  103.         self.assertTrue(TestParser.test(input, expect, 216))
  104.  
  105.     def test_17(self):
  106.         input = '''
  107.            {
  108.  
  109.            }
  110.        '''
  111.         expect = "Error on line 2 col 12: {"
  112.         self.assertTrue(TestParser.test(input, expect, 217))
  113.  
  114.     def test_18(self):
  115.         input = '''
  116.            x: integer = 65;
  117.            mess: function integer (n: integer){
  118.                return n/50 * 2;
  119.            }
  120.            main: function void () {
  121.                delta: integer = mess(7);
  122.                printInt(delta);
  123.            }
  124.        '''
  125.         expect = "successful"
  126.         self.assertTrue(TestParser.test(input, expect, 218))
  127.  
  128.     def test_19(self):
  129.         input = '''
  130.            add: function integer (n: integer){
  131.                sum: integer= 0;
  132.                for (i = 0, i<=n, i+1){
  133.                    sum = sum + i;
  134.                }
  135.                return sum;
  136.            }
  137.            main: function void () {
  138.                delta: integer = add(10);
  139.                printInt(delta);
  140.            }
  141.        '''
  142.         expect = "successful"
  143.         self.assertTrue(TestParser.test(input, expect, 219))
  144.  
  145.     def test_20(self):
  146.         input = '''
  147.            x: integer = 65;
  148.            fact: function integer (n:integer){
  149.                if (n == 0) return 1;
  150.                else return n * fact(n-1);
  151.            }
  152.            inc: function void (out n: integer, delta: integer){
  153.                n = n + delta;
  154.            }
  155.            main: function void () {
  156.                delta: integer = fact(3);
  157.                inc(x,delta);
  158.                printInt(x);
  159.            }
  160.        '''
  161.         expect = "successful"
  162.         self.assertTrue(TestParser.test(input, expect, 220))
  163.  
  164.     def test_21(self):
  165.         input = '''
  166.            main: function void () {
  167.                i: integer = 10;
  168.                while (i!=0){
  169.                    i = i - 1;
  170.                }
  171.                return  i;
  172.            }
  173.        '''
  174.         expect = "successful"
  175.         self.assertTrue(TestParser.test(input, expect, 221))
  176.  
  177.     def test_22(self):
  178.         input = '''
  179.            main: function void () {
  180.                i: integer = 10;
  181.                while (i>20){
  182.                    i = i + 2;
  183.                }
  184.                return  i;
  185.            }
  186.        '''
  187.         expect = "successful"
  188.         self.assertTrue(TestParser.test(input, expect, 222))
  189.  
  190.     def test_23(self):
  191.         input = '''
  192.            voidA: function integer (n: integer){
  193.                return n%10;
  194.            }
  195.            voidB: function void (out n: integer, delta:integer){
  196.                n = n + voidA(delta);
  197.            }
  198.            main: function void () {
  199.                delta: integer = 5;
  200.                voidB(x,delta);
  201.                printInt(x);
  202.            }
  203.        '''
  204.         expect = "successful"
  205.         self.assertTrue(TestParser.test(input, expect, 223))
  206.  
  207.     def test_24(self):
  208.         input = '''
  209.            main: function void () {
  210.                delta: string = "MT20";
  211.                printString(delta);
  212.            }
  213.        '''
  214.         expect = "successful"
  215.         self.assertTrue(TestParser.test(input, expect, 224))
  216.  
  217.     def test_25(self):
  218.         input = '''
  219.            main: function void () {
  220.                delta: float = 3.45;
  221.                printFloat(delta);
  222.            }
  223.        '''
  224.         expect = "successful"
  225.         self.assertTrue(TestParser.test(input, expect, 225))
  226.  
  227.     def test_26(self):
  228.         input = '''
  229.            main: function void () {
  230.                delta: boolean = true;
  231.                printBoolean(delta);
  232.            }
  233.        '''
  234.         expect = "successful"
  235.         self.assertTrue(TestParser.test(input, expect, 226))
  236.  
  237.     def test_27(self):
  238.         input = '''
  239.            main: function void () {
  240.                b: array [5] of integer;
  241.                b[4] = 3;
  242.                printInt(b[4]);
  243.            }
  244.        '''
  245.         expect = "successful"
  246.         self.assertTrue(TestParser.test(input, expect, 227))
  247.  
  248.     def test_28(self):
  249.         input = '''
  250.            main: function void () {
  251.                delta: integer = 3+34*30/5*16/4*2/2+19%4+2%2;
  252.                printInt(delta);
  253.            }
  254.        '''
  255.         expect = "successful"
  256.         self.assertTrue(TestParser.test(input, expect, 228))
  257.  
  258.     def test_29(self):
  259.         input = '''
  260.            main: function void () {
  261.                i: integer = 10;
  262.                do{
  263.                    i = i - 1;
  264.                }
  265.                while (i!=0);
  266.                return  i;
  267.            }
  268.        '''
  269.         expect = "successful"
  270.         self.assertTrue(TestParser.test(input, expect, 229))
  271.  
  272.     def test_30(self):
  273.         input = '''
  274.            main: function void () {
  275.                i: integer = -10;
  276.                do{
  277.                    i = i - 1;
  278.                }
  279.                while (i!=0);
  280.                return  i;
  281.            }
  282.        '''
  283.         expect = "successful"
  284.         self.assertTrue(TestParser.test(input, expect, 230))
  285.  
  286.     def test_31(self):
  287.         input = '''
  288.            main: function void () {
  289.                delta: float = 130.34e2;
  290.                printFloat(delta);
  291.            }
  292.        '''
  293.         expect = "successful"
  294.         self.assertTrue(TestParser.test(input, expect, 231))
  295.  
  296.     def test_32(self):
  297.         input = '''
  298.            main: function void () {
  299.                delta: string = "true";
  300.                printString(delta);
  301.            }
  302.        '''
  303.         expect = "successful"
  304.         self.assertTrue(TestParser.test(input, expect, 232))
  305.     def test_33(self):
  306.         input = '''
  307.           test: function integer (out x:integer, data:string){
  308.            c : integer;
  309.           }
  310.        '''
  311.         expect = "successful"
  312.         self.assertTrue(TestParser.test(input, expect, 233))
  313. #----------------- [TEST MIXED DECLARATION] -----------------#
  314.     def test_34(self):
  315.         input = '''
  316.        integer x;
  317.            test: function integer (out x:integer, data:string){
  318.            c : integer;
  319.           }
  320.        '''
  321.         expect = "Error on line 2 col 8: integer"
  322.         self.assertTrue(TestParser.test(input, expect, 234))
  323.  
  324.     def test_35(self):
  325.         input = '''
  326.        z : string;
  327.        x,y : boolean, float;
  328.            test: function integer (out x:integer, data:string){
  329.            c : integer;
  330.           }
  331.        '''
  332.         expect = "Error on line 3 col 21: ,"
  333.         self.assertTrue(TestParser.test(input, expect, 235))
  334.  
  335.     def test_36(self):
  336.         input = '''
  337.        z : string;
  338.        out : x string;
  339.        '''
  340.         expect = "Error on line 3 col 8: out"
  341.         self.assertTrue(TestParser.test(input, expect, 236))
  342.  
  343.     def test_37(self):
  344.         input = '''
  345.        z : string;
  346.        out x: string;
  347.        '''
  348.         expect = "Error on line 3 col 8: out"
  349.         self.assertTrue(TestParser.test(input, expect, 237))
  350.  
  351.     def test_38(self):
  352.         input = '''
  353.            test: function integer (out x:integer, data:string){
  354.            a : integer;
  355.            out b: string;
  356.           }
  357.        '''
  358.         expect = "Error on line 4 col 12: out"
  359.         self.assertTrue(TestParser.test(input, expect, 238))
  360.  
  361.  
  362.     def test_39(self):
  363.         # Check if body canbe empty?
  364.         input = '''
  365.            test: function integer (){
  366.           }
  367.        '''
  368.         expect = "successful"
  369.         self.assertTrue(TestParser.test(input, expect, 239))
  370.  
  371.     def test_40(self):
  372.         # Check SEMI after declaration function
  373.         input = '''
  374.            test: function integer (){
  375.           };
  376.        '''
  377.         expect = "Error on line 3 col 12: ;"
  378.         self.assertTrue(TestParser.test(input, expect, 240))
  379. #----------------- [EXPRESSION TEST] -----------------#
  380.     def test_41(self): #note
  381.         input = """
  382.            x: float = 10 % 2 + .2E-10 * 12 + 8.98;
  383.            y: boolean =  (true||false)&&true||false;
  384.        """
  385.         expect = "successful"
  386.         self.assertTrue(TestParser.test(input,expect,241))
  387.  
  388.     def test_42(self): #note
  389.         input = """
  390.            x: float = 10 % 2 + .2E-10 * 12 + 8.98;
  391.            y: boolean =  true||false&&true||false;
  392.        """
  393.         expect = "successful"
  394.         self.assertTrue(TestParser.test(input,expect,242))
  395.  
  396.     def test_43(self): #note
  397.         input = """
  398.            x: float = 10 % 2 + .2E-10 * 012 + 8.98;
  399.            y: boolean =  (true||false)&&true||false;
  400.        """
  401.         expect = "Error on line 2 col 42: 12"
  402.         self.assertTrue(TestParser.test(input,expect,243))
  403.     def test_44(self):
  404.         input = """
  405.                a:float = 1_000 % 2 + .2E-10  + 8.98;
  406.                b:float = (1 - 1) * 2 / 2 / 2 + 8 % 3 + ---10 * !!!true&&false;
  407.        """
  408.         expect = "successful"
  409.         self.assertTrue(TestParser.test(input,expect,244))
  410.  
  411.     def test_45(self):
  412.         input = """
  413.                x: string = "Bach"::"Khoa";
  414.        """
  415.         expect = "successful"
  416.         self.assertTrue(TestParser.test(input,expect,245))
  417.  
  418.     def test_46(self):
  419.         input = """
  420.                x: string = "BK";
  421.                y: string = "CSE";
  422.                z: string = x::y;
  423.        """
  424.         expect = "successful"
  425.         self.assertTrue(TestParser.test(input,expect,246))
  426.  
  427. #----------------- [ARRAY TEST] -----------------#
  428.  
  429.     def test_47(self):
  430.         input = """
  431.                x: integer = 1/2*3 + 4;
  432.                array_test : array [1,3] of integer;
  433.        """
  434.         expect = "successful"
  435.         self.assertTrue(TestParser.test(input,expect,247))
  436.  
  437.     def test_48(self):
  438.         input = """
  439.                x: integer = 1/2*3 + 4;
  440.                array_test : array [x,3] of integer;
  441.        """
  442.         expect = "Error on line 3 col 36: x"
  443.         self.assertTrue(TestParser.test(input,expect,248))
  444.  
  445.     def test_49(self):
  446.         input = """
  447.                x: integer= 1/2*3 + 4;
  448.                array_test : array [1+1,3] of integer;
  449.        """
  450.         expect = "Error on line 3 col 37: +"
  451.         self.assertTrue(TestParser.test(input,expect,249))
  452.  
  453.     def test_50(self):
  454.         input = """
  455.                x: integer = 1/2*3 + 4;
  456.                array_test : array [1+1,3] of integer;
  457.        """
  458.         expect = "Error on line 3 col 37: +"
  459.         self.assertTrue(TestParser.test(input,expect,250))
  460.  
  461.     def test_51(self):
  462.         input = """
  463.                x: integer = 1/2*3 + 4;
  464.                array_test : array [1,3] of integer;
  465.                array_test [];
  466.        """
  467.         expect = "Error on line 4 col 27: ["
  468.         self.assertTrue(TestParser.test(input,expect,251))
  469.  
  470.     def test_52(self): #note
  471.         input = """
  472.                x: integer = 1/2*3 + 4;
  473.                array_test : array [1,3] of integer;
  474.                array_test [1,2];
  475.        """
  476.         expect = "Error on line 4 col 27: ["
  477.         self.assertTrue(TestParser.test(input,expect,252))
  478.  
  479.     def test_53(self): #note
  480.         input = """
  481.                x: integer = 1/2*3 + 4;
  482.                array_test : array [1,3] of integer;
  483.                array_test 1,2;
  484.        """
  485.         expect = "Error on line 4 col 27: 1"
  486.         self.assertTrue(TestParser.test(input,expect,253))
  487.  
  488.     def test_54(self): #note
  489.         input = """
  490.                x: integer= 1/2*3 + 4;
  491.                array_test : array [1,3] of integer;
  492.                y: float = array_test[1+1,x];
  493.        """
  494.         expect = "successful"
  495.         self.assertTrue(TestParser.test(input,expect,254))
  496.  
  497.  
  498.     def test_55(self):
  499.         input = """
  500.                x:integer = 1/2*3 + 4;
  501.                array_test : array [1,3] of integer;
  502.                y: float = array_test[1+1,x] + 1/100;
  503.        """
  504.         expect = "successful"
  505.         self.assertTrue(TestParser.test(input,expect,255))
  506.  
  507.     def test_56(self):
  508.         input = """
  509.                arr : array [2,3] of integer = {1,2,3,4,5,6};
  510.                arr [0,1] = ;
  511.                y: float = array_test[1+1,x] + 1/100;
  512.        """
  513.         expect = "Error on line 3 col 20: ["
  514.         self.assertTrue(TestParser.test(input,expect,256))
  515.  
  516.     def test_57(self):
  517.         input = """
  518.                arr : array [2,3] of float;
  519.                arr [0,1] = 1*2+1.2-1;
  520.        """
  521.         expect = "Error on line 3 col 20: ["
  522.         self.assertTrue(TestParser.test(input,expect,257))
  523.  
  524.     def test_58(self):
  525.         input = """
  526.                x : integer;
  527.                arr : array [2,3] of float;
  528.                x = arr[0,1]
  529.        """
  530.         expect = "Error on line 4 col 18: ="
  531.         self.assertTrue(TestParser.test(input,expect,258))
  532.  
  533.     def test_59(self):
  534.         input = '''
  535.            test: function integer (){
  536.                arr : array [2,3] of float;
  537.                x = arr [0,1];
  538.           }
  539.        '''
  540.         expect = "successful"
  541.         self.assertTrue(TestParser.test(input, expect, 259))
  542.  
  543.     def test_60(self):
  544.         # Array is parameter?
  545.         input = '''
  546.            arr : array [2,3] of float;
  547.            test: function integer(out arr : array [2,3] of float){
  548.                arr : array [2,3] of float;
  549.                arr [0,1] = 1*2+1.2-1;
  550.           }
  551.        '''
  552.         expect = "successful"
  553.         self.assertTrue(TestParser.test(input, expect, 260))
  554.  
  555.     def test_61(self):
  556.         input = '''
  557.            test: function integer(x:integer,){
  558.                arr : array [2,3] of float;
  559.                arr [0,1] = 1*2+1.2-1;
  560.           }
  561.        '''
  562.         expect = "Error on line 2 col 45: )"
  563.         self.assertTrue(TestParser.test(input, expect, 261))
  564. #----------------- [STATEMENT TEST] -----------------#
  565.     def test_62(self):
  566.         input = '''
  567.            return;
  568.        '''
  569.         expect = "Error on line 2 col 12: return"
  570.         self.assertTrue(TestParser.test(input, expect, 262))
  571.  
  572.     def test_63(self):
  573.         input = '''
  574.            break;
  575.        '''
  576.         expect = "Error on line 2 col 12: break"
  577.         self.assertTrue(TestParser.test(input, expect, 263))
  578.  
  579.     def test_64(self):
  580.         input = '''
  581.            continue;
  582.        '''
  583.         expect = "Error on line 2 col 12: continue"
  584.         self.assertTrue(TestParser.test(input, expect, 264))
  585.  
  586.     def test_65(self):
  587.         input = '''
  588.            main : function void() {
  589.                continue;
  590.            }
  591.        '''
  592.         expect = "successful"
  593.         self.assertTrue(TestParser.test(input, expect, 265))
  594.  
  595.     def test_66(self):
  596.         input = '''
  597.            x : integer ;
  598.            main : function void() {
  599.                x : integer ;
  600.                if(x==3) y = 3;
  601.            }
  602.        '''
  603.         expect = "successful"
  604.         self.assertTrue(TestParser.test(input, expect, 266))
  605.  
  606.     def test_67(self):
  607.         input = '''
  608.            x : integer ;
  609.            main : function void() {
  610.                if(x==3) {y :integer= 3;}
  611.            }
  612.        '''
  613.         expect = "successful"
  614.         self.assertTrue(TestParser.test(input, expect, 267))
  615.  
  616.     def test_68(self):
  617.         input = '''
  618.            x : integer ;
  619.            main : function void() {
  620.                if(x==3) {y : integer = 3}
  621.            }
  622.  
  623.        '''
  624.         expect = "Error on line 4 col 41: }"
  625.         self.assertTrue(TestParser.test(input, expect, 268))
  626.  
  627.     def test_69(self):
  628.         input = '''
  629.            x : integer ;
  630.            main : function void() {
  631.                if(x==3) {y : integer = 3;};
  632.            }
  633.        '''
  634.         expect = "Error on line 4 col 43: ;"
  635.         self.assertTrue(TestParser.test(input, expect, 269))
  636.  
  637.     def test_70(self):
  638.         input = '''
  639.            x : integer ;
  640.            main : function void() {
  641.               if(x==3){break;}
  642.            }
  643.        '''
  644.         expect = "successful"
  645.         self.assertTrue(TestParser.test(input, expect, 270))
  646.  
  647.     def test_71(self):
  648.         input = '''
  649.            x : integer;
  650.            main : function void() {
  651.               if(x==3){continue;}
  652.            }
  653.        '''
  654.         expect = "successful"
  655.         self.assertTrue(TestParser.test(input, expect, 271))
  656.  
  657.     def test_72(self):
  658.         input = '''
  659.            x : integer ;
  660.            main : function void() {
  661.                if(x==3) {y : integer= 3;};
  662.                else y : integer = 4;
  663.            }
  664.        '''
  665.         expect = "Error on line 4 col 42: ;"
  666.         self.assertTrue(TestParser.test(input, expect, 272))
  667.  
  668.     def test_73(self):
  669.         input = '''
  670.            x : integer ;
  671.            main : function void() {
  672.                if(x==3) {y :integer = 3;}
  673.                else {y : integer = 34;}
  674.            }
  675.        '''
  676.         expect = "successful"
  677.         self.assertTrue(TestParser.test(input, expect, 273))
  678.  
  679.     def test_74(self):
  680.         input = '''
  681.            x : integer ;
  682.            main : function void() {
  683.                if(x==3) {y : integer = 3;};
  684.                else {y : integer = 34};
  685.            }
  686.        '''
  687.         expect = "Error on line 4 col 43: ;"
  688.         self.assertTrue(TestParser.test(input, expect, 274))
  689.  
  690.     def test_75(self):
  691.         input = '''
  692.            x : integer ;
  693.            main : function void() {
  694.                if(x==3) {y :integer = 3;}
  695.                else {y : integer = 34;}
  696.            }
  697.        '''
  698.         expect = "successful"
  699.         self.assertTrue(TestParser.test(input, expect, 275))
  700.  
  701.     def test_76(self):
  702.         input = '''
  703.            arr : array [1,2] of integer;
  704.            x : integer ;
  705.            main : function void() {
  706.                if(x==3) {arr[0,1] = 3;}
  707.                else {arr[0,1] = 4 ;}
  708.            }
  709.        '''
  710.         expect = "successful"
  711.         self.assertTrue(TestParser.test(input, expect, 276))
  712.  
  713.     def test_77(self):
  714.         input = '''
  715.  
  716.            arr : array [1,2] of integer;
  717.            main : function void() {
  718.                if(x==3) {arr[0,1] = arr [0,2];}
  719.                else {arr[0,1] = arr[1,2];}
  720.            }
  721.        '''
  722.         expect = "successful"
  723.         self.assertTrue(TestParser.test(input, expect, 277))
  724.  
  725.     def test_78(self):
  726.         input = '''
  727.            main : function void() {
  728.                x : integer ;
  729.                if(x==3){
  730.                   y : integer ;
  731.                    if(y==4) {z : integer = 4;}
  732.                }
  733.            }
  734.        '''
  735.         expect = "successful"
  736.         self.assertTrue(TestParser.test(input, expect, 278))
  737.  
  738.     def test_79(self):
  739.         input = '''
  740.            main : function void() {
  741.                x : integer ;
  742.                if(x==3){
  743.                    y : integer ;
  744.                    if(y==4) {z : integer = 4;}
  745.                    else {
  746.                        z : integer = 5;
  747.                    }
  748.                }
  749.            }
  750.        '''
  751.         expect = "successful"
  752.         self.assertTrue(TestParser.test(input, expect, 279))
  753.  
  754.     def test_80(self):
  755.         input = '''
  756.            main : function void() {
  757.                x :integer ;
  758.                 if(x==3){
  759.                    y : integer ;
  760.                    if(y==4) {z : integer = 4;}
  761.                    else {
  762.                    z : integer = 5;
  763.                    }
  764.                } else { z : integer = 3;}
  765.            }
  766.        '''
  767.         expect = "successful"
  768.         self.assertTrue(TestParser.test(input, expect, 280))
  769.  
  770.  
  771.     def test_81(self):
  772.         input = '''
  773.            main : function void() {
  774.                x : integer ;
  775.                if(x==3){}
  776.            }
  777.        '''
  778.         expect = "successful"
  779.         self.assertTrue(TestParser.test(input, expect, 281))
  780.  
  781.     def test_82(self):
  782.         input = '''
  783.            main : function void() {
  784.                x : integer ;
  785.                if(x==3){} else z : integer = 3;
  786.            }
  787.  
  788.        '''
  789.         expect = "Error on line 4 col 34: :"
  790.         self.assertTrue(TestParser.test(input, expect, 282))
  791.  
  792.     def test_83(self):
  793.         input = '''
  794.            main : function void() {
  795.                x : integer ;
  796.                if(x==3){} else {z : integer = 3;}
  797.            }
  798.        '''
  799.         expect = "successful"
  800.         self.assertTrue(TestParser.test(input, expect, 283))
  801.  
  802.     def test_84(self):
  803.         input = '''
  804.            main : function void() {
  805.                for (i = 1, i < 10, i + 1) {
  806.                    writeInt(i);
  807.                }
  808.            }
  809.        '''
  810.         expect = "successful"
  811.         self.assertTrue(TestParser.test(input, expect, 284))
  812.  
  813.     def test_85(self):
  814.         input = '''
  815.            main : function void() {
  816.                x : integer ;
  817.                if(x==3){
  818.                    for (i = 1, i < 10, i + 1) {
  819.                    writeInt(i);
  820.                    }
  821.                } else {z : integer = 3;}
  822.            }
  823.        '''
  824.         expect = "successful"
  825.         self.assertTrue(TestParser.test(input, expect, 285))
  826.  
  827.     def test_86(self):
  828.         input = '''
  829.            main: function void() {
  830.                for (i = 1, i < 10, i + 1) {
  831.                writeInt(i);
  832.                }
  833.            }
  834.        '''
  835.         expect = "successful"
  836.         self.assertTrue(TestParser.test(input, expect, 286))
  837.  
  838.     def test_87(self):
  839.         input = '''
  840.            main : function void() {
  841.                x : integer ;
  842.                {
  843.                    for (i = 1, i < 10, i + 1) {
  844.                        writeInt(i);
  845.                        if(x==3){break;}
  846.                    }
  847.                }
  848.            }
  849.  
  850.        '''
  851.         expect = "successful"
  852.         self.assertTrue(TestParser.test(input, expect, 287))
  853.  
  854.     def test_88(self):
  855.         input = '''
  856.            main : function void() {
  857.                x : integer ;
  858.                for (i = 1, i < 10, i + 1) {
  859.                    writeInt(i);
  860.                    if(x==3){break;}
  861.                }
  862.            }
  863.        '''
  864.         expect = "successful"
  865.         self.assertTrue(TestParser.test(input, expect, 288))
  866.  
  867.     def test_89(self):
  868.         input = '''
  869.            main : function void() {
  870.                x : integer ;
  871.                for (i = 1, i < 10, i + 1) {
  872.                    writeInt(i);
  873.                    if(x==3){continue;}
  874.                }
  875.            }
  876.        '''
  877.         expect = "successful"
  878.         self.assertTrue(TestParser.test(input, expect, 289))
  879.  
  880.  
  881.     def test_90(self):
  882.         input = '''
  883.            main : function void() {
  884.                x : integer ;
  885.                for (i = 1, i < 10, i + 1) {
  886.                    if(i%2==0){writeInt(i);}
  887.                    else foo(2*i);
  888.                }
  889.            }
  890.  
  891.        '''
  892.         expect = "successful"
  893.         self.assertTrue(TestParser.test(input, expect, 290))
  894.  
  895.     def test_91(self):
  896.         input = '''
  897.            main : function void() {
  898.                x : integer = 5;
  899.                while (x > 0){
  900.                    writeInt(x);
  901.                    x = x - 1;
  902.                }
  903.            }
  904.  
  905.        '''
  906.         expect = "successful"
  907.         self.assertTrue(TestParser.test(input, expect, 291))
  908.  
  909.     def test_92(self):
  910.         input = '''
  911.            main : function void() {
  912.                x : integer = 5;
  913.                while (x > 0){
  914.                    if(x%2==0){writeInt(x);}
  915.                    else break;
  916.                    x = x - 1;
  917.                }
  918.            }
  919.  
  920.        '''
  921.         expect = "successful"
  922.         self.assertTrue(TestParser.test(input, expect, 292))
  923.  
  924.     def test_93(self):
  925.         input = '''
  926.            main : function void() {
  927.                x : integer = 5;
  928.                while x > 0 {
  929.                    x = x - 1;
  930.                }
  931.            }
  932.  
  933.        '''
  934.         expect = "Error on line 4 col 22: x"
  935.         self.assertTrue(TestParser.test(input, expect, 293))
  936.  
  937.     def test_94(self):
  938.         input = '''
  939.            main : function void() {
  940.                x : integer = 5;
  941.                while (){
  942.                }
  943.            }
  944.  
  945.        '''
  946.         expect = "Error on line 4 col 23: )"
  947.         self.assertTrue(TestParser.test(input, expect, 294))
  948.  
  949.  
  950.     def test_95(self):
  951.         input = '''
  952.            main : function void() {
  953.                x : integer = 5;
  954.                while ( x > 0){
  955.                }
  956.            }
  957.        '''
  958.         expect = "successful"
  959.         self.assertTrue(TestParser.test(input, expect, 295))
  960.  
  961.     def test_96(self):
  962.         input = '''
  963.            main : function void() {
  964.                x : integer = 5;
  965.                while (x > 0)  x = x - 1;
  966.            }
  967.  
  968.        '''
  969.         expect = "successful"
  970.         self.assertTrue(TestParser.test(input, expect, 296))
  971.  
  972.     def test_97(self):
  973.         input = '''
  974.            main : function void() {
  975.                x : integer = 5;
  976.                do x = x - 1;
  977.                while (x > 0);
  978.            }
  979.  
  980.        '''
  981.         expect = "Error on line 4 col 19: x"
  982.         self.assertTrue(TestParser.test(input, expect, 297))
  983.  
  984.     def test_98(self):
  985.         input = '''
  986.            main : function void() {
  987.                x : integer = 5;
  988.                do {x = x - 1;}
  989.                while (x > 0);
  990.            }
  991.  
  992.        '''
  993.         expect = "successful"
  994.         self.assertTrue(TestParser.test(input, expect, 298))
  995.  
  996.     def test_99(self):
  997.         input = '''
  998.            main : function void() {
  999.                x : integer= 5;
  1000.                do {x = x - 1}
  1001.                while (x > 0);
  1002.            }
  1003.  
  1004.        '''
  1005.         expect = "Error on line 4 col 29: }"
  1006.         self.assertTrue(TestParser.test(input, expect, 299))
  1007.  
  1008.     def test_100(self):
  1009.         input = '''
  1010.            main : function void() {
  1011.                x : integer = 5;
  1012.                do {
  1013.                    if(x==3) writeInt(x);
  1014.                }
  1015.                while (x > 0);
  1016.            }
  1017.  
  1018.        '''
  1019.         expect = "successful"
  1020.         self.assertTrue(TestParser.test(input, expect, 300))
  1021.  
  1022.     def test_101(self):
  1023.         input = '''
  1024.            main : function void() {
  1025.            x : integer= 5;
  1026.                do {
  1027.                    if(x==3) break;
  1028.                    else writeInt(x);
  1029.                }
  1030.                while (x > 0);
  1031.            }
  1032.  
  1033.        '''
  1034.         expect = "successful"
  1035.         self.assertTrue(TestParser.test(input, expect, 301))
  1036.  
  1037.     def test_102(self):
  1038.         input = '''
  1039.            main : function void() {
  1040.                x : integer = 5;
  1041.                do {
  1042.                    if(x==3) continue;
  1043.                    else writeInt(x);
  1044.                }
  1045.                while (x > 0);
  1046.            }
  1047.  
  1048.        '''
  1049.         expect = "successful"
  1050.         self.assertTrue(TestParser.test(input, expect, 302))
  1051.  
  1052.     def test_103(self):
  1053.         input = '''
  1054.            main : function void() {
  1055.                x : integer;
  1056.                for (i = 1, i < 10, i + 1) {
  1057.                    if(x%2==0){writeInt(i)};
  1058.                }
  1059.            }
  1060.        '''
  1061.         expect = "Error on line 5 col 42: }"
  1062.         self.assertTrue(TestParser.test(input, expect, 303))
  1063.  
  1064.     def test_104(self):
  1065.         input = '''
  1066.        x : integer;
  1067.        x = count(1+1,1*2)
  1068.        '''
  1069.         expect = "Error on line 3 col 10: ="
  1070.         self.assertTrue(TestParser.test(input, expect, 304))
  1071.  
  1072.     def test_105(self):
  1073.         input = '''
  1074.            x : integer;
  1075.            main : function void () {count(1+1,1*2);} ;
  1076.        '''
  1077.         expect = "Error on line 3 col 54: ;"
  1078.         self.assertTrue(TestParser.test(input, expect, 305))
  1079.  
  1080.     def test_106(self):
  1081.         input = '''
  1082.            main : function void (x: function void()) {}
  1083.        '''
  1084.         expect = "Error on line 2 col 37: function"
  1085.         self.assertTrue(TestParser.test(input, expect, 306))
  1086.  
  1087.     def test_107(self):
  1088.         input = '''
  1089.            main : function void (x : auto) {}
  1090.        '''
  1091.         expect = "successful"
  1092.         self.assertTrue(TestParser.test(input, expect, 307))
  1093.     def test_108(self):
  1094.         input = '''
  1095.          main : function void () {
  1096.             alse1 : integer = 1[2];
  1097.            a = ar[1,2];}
  1098.        '''
  1099.         expect = "Error on line 3 col 32: ["
  1100.         self.assertTrue(TestParser.test(input, expect, 308))
  1101.     def test_109(self):
  1102.         input = '''
  1103.        x : integer = 1__2;
  1104.        '''
  1105.         expect = "Error on line 2 col 23: __2"
  1106.         self.assertTrue(TestParser.test(input, expect, 309))
  1107.  
  1108.     def test_109(self):
  1109.         input = '''
  1110.        main : function void() {
  1111.                for( i[0] = 0 , i[0] < 1 , -1){}
  1112.            }
  1113.        '''
  1114.         expect = "successful"
  1115.         self.assertTrue(TestParser.test(input, expect, 310))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement