def test_IsValid_NestedParenConfiguration_Returns_True(self): # Arrange entireExpression = RawExpression("((1+1)+1)") # Act actual = entireExpression.isValid() expected = True # Assert self.assertEqual(actual, expected)
def test_IsValid_Plus1Plus1_Returns_False(self): # Arrange entireExpression = RawExpression("+1+1") # Act actual = entireExpression.isValid() expected = False # Assert self.assertEqual(actual, expected)
def test_IsValid_LParen1Plus1RParen_Returns_True(self): # Arrange entireExpression = RawExpression("(1+1)") # Act actual = entireExpression.isValid() expected = True # Assert self.assertEqual(actual, expected)
def test_IsValid_EmptyParens_Returns_False(self): # Arrange entireExpression = RawExpression("1+()1") # Act actual = entireExpression.isValid() expected = False # Assert self.assertEqual(actual, expected)
def test_Evaluate_1Plus1Plus1Plus1_Returns_4(self): # Arrange entireExpression = RawExpression("1+1+1+1") # Act actual = entireExpression.evaluate() expected = 4 # Assert self.assertEqual(actual, expected)
def test_Evaluate_2Plus2Times3_Returns_8(self): # Arrange entireExpression = RawExpression("2+2*3") # Act actual = entireExpression.evaluate() expected = 8 # Assert self.assertEqual(actual, expected)
def test_Evaluate_4Divides2_Returns_2(self): # Arrange entireExpression = RawExpression("4/2") # Act actual = entireExpression.evaluate() expected = 2 # Assert self.assertEqual(actual, expected)
def test_Evaluate_LParen2Plus3RParen2_Returns_10(self): # Arrange entireExpression = RawExpression("(2+3)2") # Act actual = entireExpression.evaluate() expected = 10 # Assert self.assertEqual(actual, expected)
def test_Evaluate_MiscellaneousComplexExpressionWithSpaces_Returns_24(self): # Arrange entireExpression = RawExpression("3* ( (2+3)-4)*(2+1)(1+1)+5+2/ 2") # Act actual = entireExpression.evaluate() expected = 24 # Assert self.assertEqual(actual, expected)
def test_Evaluate_2Times1_Returns_2(self): # Arrange entireExpression = RawExpression("2*1") # Act actual = entireExpression.evaluate() expected = 2 # Assert self.assertEqual(actual, expected)
def test_Evaluate_1PlusParentheticalParenthetical_Returns_11(self): # Arrange entireExpression = RawExpression("1+(1+1)(2+3)") # Act actual = entireExpression.evaluate() expected = 11 # Assert self.assertEqual(actual, expected)
def test_Evaluate_ParentheticalPlusParentheticalPlus1_Returns_8(self): # Arrange entireExpression = RawExpression("(1+1)+(2+3)+1") # Act actual = entireExpression.evaluate() expected = 8 # Assert self.assertEqual(actual, expected)
def test_Evaluate_TwoParentheticalsNoTimes_Returns_10(self): # Arrange entireExpression = RawExpression("(2+3)(1+1)") # Act actual = entireExpression.evaluate() expected = 10 # Assert self.assertEqual(actual, expected)
def test_IsValid_RParenStart_Returns_False(self): # Arrange entireExpression = RawExpression(")1+1)") # Act actual = entireExpression.isValid() expected = False # Assert self.assertEqual(actual, expected)
def test_Evaluate_1Minus1_Returns_0(self): # Arrange entireExpression = RawExpression("1-1") # Act actual = entireExpression.evaluate() expected = 0 # Assert self.assertEqual(actual, expected)
def test_Evaluate_1Times2Times2Minus3_Returns_1(self): # Arrange entireExpression = RawExpression("1*2*2-3") # Act actual = entireExpression.evaluate() expected = 1 # Assert self.assertEqual(actual, expected)
from RawExpression import RawExpression #!/usr/bin/env python haveValidEquation = False while (not haveValidEquation): print("Please enter an equation.") print("x = ") inputString = input() expression = RawExpression(inputString) if expression.isValid(): haveValidEquation = True else: print("Invalid Equation.") print("x = " + str(expression.evaluate()))