def test_emulator_conditional_not_or(self): ''' Makes sure we can use the not with other operators ''' parser = BaseParser("") self.assertTrue(parser.EvaluateConditional('!if FALSE NOT OR FALSE')) self.assertFalse(parser.EvaluateConditional('!if TRUE NOT OR FALSE')) self.assertFalse(parser.EvaluateConditional('!if FALSE NOT OR TRUE')) self.assertFalse(parser.EvaluateConditional('!if TRUE NOT OR TRUE'))
def test_process_and_operation_conditional(self): parser = BaseParser("") self.assertFalse(parser.EvaluateConditional('!if TRUE AND FALSE')) self.assertFalse(parser.EvaluateConditional('!if FALSE AND TRUE')) self.assertTrue(parser.EvaluateConditional('!if TRUE AND TRUE')) self.assertTrue(parser.EvaluateConditional('!if TRUE && TRUE')) self.assertFalse(parser.EvaluateConditional('!if FALSE AND FALSE')) self.assertFalse(parser.EvaluateConditional('!if FALSE && FALSE'))
def test_process_or_operation_conditional(self): parser = BaseParser("") self.assertTrue(parser.EvaluateConditional('!IF TRUE OR FALSE')) self.assertTrue(parser.EvaluateConditional('!if FALSE OR TRUE')) self.assertTrue(parser.EvaluateConditional('!if FALSE || TRUE')) self.assertTrue(parser.EvaluateConditional('!if TRUE OR TRUE')) self.assertFalse(parser.EvaluateConditional('!if FALSE OR FALSE')) self.assertFalse(parser.EvaluateConditional('!if FALSE || FALSE'))
def test_emulator_conditional_parens_order(self): ''' Makes sure the parenthesis affect the order of expressions ''' parser = BaseParser("") self.assertFalse( parser.EvaluateConditional('!if TRUE OR FALSE AND FALSE')) self.assertTrue( parser.EvaluateConditional('!if TRUE OR (FALSE AND FALSE)')) parser.ResetParserState()
def test_emulator_conditional_not_it_all(self): ''' Makes sure the parenthesis affect the order of expressions ''' parser = BaseParser("") self.assertTrue(parser.EvaluateConditional('!if NOT FALSE OR FALSE')) self.assertFalse(parser.EvaluateConditional('!if NOT TRUE OR FALSE')) # check to make sure it works with parenthesis self.assertFalse(parser.EvaluateConditional('!if NOT(TRUE)')) self.assertTrue(parser.EvaluateConditional('!if NOT(FALSE)')) # make sure it works with the bang symbol self.assertFalse(parser.EvaluateConditional('!if !(TRUE)')) self.assertTrue(parser.EvaluateConditional('!if !(FALSE)')) parser.ResetParserState()
def test_process_invalid_conditional(self): parser = BaseParser("") with self.assertRaises(RuntimeError): parser.EvaluateConditional('!if TRUE AND FALSE AND') with self.assertRaises(RuntimeError): parser.EvaluateConditional('TRUE AND FALSE AND')