def test_tokenize_addition(self): '''Tokenizes a rpn expression''' self.assert_tokenize('4 2 +', [4, 2, make_operator('+')])
def test_make_operator_add(self): '''Addition operator should add''' stack = [4, 2] operator = make_operator('+') operator(stack) self.assertEqual(stack.pop(), 6)
def test_tokenize_with_operator(self): '''Tokenizes operators correctly''' self.assert_tokenize('+', [make_operator('+')])
def test_tokenize_division(self): '''Tokenizes a rpn division''' self.assert_tokenize('4 2 /', [4, 2, make_operator('/')])
def test_tokenize_multiplication(self): '''Tokenizes a rpn subtraction''' self.assert_tokenize('4 2 *', [4, 2, make_operator('*')])
def test_make_operator_multiply(self): '''Multiplication operator should multiply''' stack = [4, 2] operator = make_operator('*') operator(stack) self.assertEqual(stack.pop(), 8)
def test_tokenize_subtraction(self): '''Tokenizes a rpn subtraction''' self.assert_tokenize('4 2 -', [4, 2, make_operator('-')])
def test_make_operator_subtract(self): '''Division operator should divide''' stack = [4, 2] operator = make_operator('/') operator(stack) self.assertEqual(stack.pop(), 2)
def test_make_operator_subtract(self): '''Subtraction operator should add''' stack = [4, 2] operator = make_operator('-') operator(stack) self.assertEqual(stack.pop(), 2)
def test_execute_addition(self): '''Should execute an addition correctly''' self.assert_execute([4, 2, make_operator('+')], 6)
def test_execute_multiplication(self): '''Should execute a multiplication correctly''' self.assert_execute([4, 2, make_operator('*')], 8)
def test_execute_division(self): '''Should execute a division correctly''' self.assert_execute([4, 2, make_operator('/')], 2)