def test_InteriorNode_valueTest3(self): leaf1 = LeafNode(5) leaf2 = LeafNode(10) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) node3 = InteriorNode(Token('-'), node2, leaf2) self.assertEqual(node3.value(), 65)
def test_InteriorNode_postfixTest2(self): leaf1 = LeafNode(72) leaf2 = LeafNode(14) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) node3 = InteriorNode(Token('/'), node2, leaf2) s = "72 72 14 + * 14 /" self.assertEqual(node3.postfix(), s)
def test_InteriorNode_prefixTest2(self): leaf1 = LeafNode(72) leaf2 = LeafNode(14) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) node3 = InteriorNode(Token('/'), node2, leaf2) s = "/ * 72 + 72 14 14" self.assertEqual(node3.prefix(), s)
def test_InteriorNode_infixTest1(self): leaf1 = LeafNode(5) leaf2 = LeafNode(10) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) node3 = InteriorNode(Token('-'), node2, leaf2) s = "((5 * (5 + 10)) - 10)" self.assertEqual(node3.infix(), s)
def factor(self): tree = self.primary() token = self.scanner.get() if token.getType() == Token.EXPO: self.scanner.next() tree = InteriorNode(token, tree, self.factor()) return tree
def term(self): tree = self.factor() token = self.scanner.get() while token.getType() in (Token.MUL, Token.DIV): self.scanner.next() tree = InteriorNode(token, tree, self.factor()) token = self.scanner.get() return tree
def expression(self): tree = self.term() token = self.scanner.get() while token.getType() in (Token.PLUS, Token.MINUS): self.scanner.next() tree = InteriorNode(token, tree, self.term()) token = self.scanner.get() return tree
def _term(self): tree = self._factor() token = self._scanner.get() while token.getType() in (Token.MUL, Token.DIV): op = str(token) self._scanner.next() tree = InteriorNode(op, tree, self._factor()) token = self._scanner.get() return tree
def _expression(self): tree = self._term() token = self._scanner.get() while token.getType() in (Token.PLUS, Token.MINUS): op = str(token) self._scanner.next() tree = InteriorNode(op, tree, self._term()) token = self._scanner.get() return tree
def _factor(self): tree = self._primary() token = self._scanner.get() if token.getType() == Token.EXPO: op = str(token) self._scanner.next() tree = InteriorNode(op, tree, self._factor()) token = self._scanner.get() return tree
def expression(self): tree = self.term() token = self.scanner.get() if token is None: return tree while token.getType() in (Token.PLUS, Token.MINUS): op = str(token) self.scanner.tonext() tree = InteriorNode(op, tree, self.term()) token = self.scanner.get() if token is None: break return tree
def term(self): tree = self.factor() token = self.scanner.get() if token is None: return tree while token.getType() in (Token.MUL, Token.DIV): op = str(token) self.scanner.tonext() tree = InteriorNode(op, tree, self.factor()) token = self.scanner.get() if token is None: break return tree
def test_InteriorNode_postfixTest1(self): leaf1 = LeafNode(5) leaf2 = LeafNode(10) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) node3 = InteriorNode(Token('-'), node2, leaf2) s = "5 5 10 + * 10 -" print(node3.postfix()) self.assertEqual(node3.postfix(), s)
def test_InteriorNode_infixTest2(self): leaf1 = LeafNode(72) leaf2 = LeafNode(14) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) node3 = InteriorNode(Token('/'), node2, leaf2) s = "((72 * (72 + 14)) / 14)" print(node3.infix()) self.assertEqual(node3.infix(), s)
def test_InteriorNode_valueTest1(self): leaf1 = LeafNode(5) leaf2 = LeafNode(10) node = InteriorNode(Token('+'), leaf1, leaf2) self.assertEqual(node.value(), 15)
def test_InteriorNode_valueTest2(self): leaf1 = LeafNode(5) leaf2 = LeafNode(10) node1 = InteriorNode(Token('+'), leaf1, leaf2) node2 = InteriorNode(Token('*'), leaf1, node1) self.assertEqual(node2.value(), 75)