Beispiel #1
0
 def test_visit_BinOp_multiply(self):
     node = BinOp(left=Num(Token('INTEGER', 2)),
                  op=Token('MULTIPLY', '*'),
                  right=Num(Token('INTEGER', 3)))
     interpreter = Interpreter(None)
     result = interpreter.visit_BinOp(node)
     assert result == 6
Beispiel #2
0
 def test_visit_BinOp_Subtract(self):
     node = BinOp(left=Num(Token('INTEGER', 6)),
                  op=Token('SUBTRACT', '-'),
                  right=Num(Token('INTEGER', 2)))
     interpreter = Interpreter(None)
     result = interpreter.visit_BinOp(node)
     assert result == 4
Beispiel #3
0
 def test_visit_BinOp_Add(self):
     node = BinOp(left=Num(Token('INTEGER', 3)),
                  op=Token('ADD', '+'),
                  right=Num(Token('INTEGER', 2)))
     interpreter = Interpreter(None)
     result = interpreter.visit_BinOp(node)
     assert result == 5
Beispiel #4
0
 def test_visit_BinOp_divide_int(self):
     node = BinOp(left=Num(Token('INTEGER', 8)),
                  op=Token('DIVIDE', '/'),
                  right=Num(Token('INTEGER', 2)))
     interpreter = Interpreter(None)
     result = interpreter.visit_BinOp(node)
     assert result == 4
     assert isinstance(result, int)
Beispiel #5
0
 def test_visit_BinOp_divide_float(self):
     node = BinOp(left=Num(Token('FLOAT', 8.2)),
                  op=Token('DIVIDE', '/'),
                  right=Num(Token('FLOAT', 2.4)))
     interpreter = Interpreter(None)
     result = interpreter.visit_BinOp(node)
     assert result == (8.2 / 2.4)
     assert isinstance(result, float)
Beispiel #6
0
 def test_interpret(self):
     lexer = Lexer('3 + 5')
     parser = Parser(lexer)
     interpreter = Interpreter(parser)
     result = interpreter.interpret()
     assert result == 8
Beispiel #7
0
 def test_visit_Num(self):
     node = Num(Token('INTEGER', 3))
     interpreter = Interpreter(None)
     result = interpreter.visit_Num(node)
     assert result == 3