Пример #1
0
 def testConditionalExpression_51(self):
     """ConstantExpression - Conditional expression evaluation: raises on ((&&)==(||)) ? (1) : (2)\\n"""
     myCpp = PpTokeniser.PpTokeniser()
     expression = '((&&)==(||)) ? (1) : (2)\n'
     myCe = ConstantExpression.ConstantExpression([])
     m = myCe.RE_CONDITIONAL_EXPRESSION.match(expression)
     self.assertNotEqual(None, m)
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs(expression)]
     # print()
     # print(myToksTypes)
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertRaises(ConstantExpression.ExceptionConditionalExpression, myObj.evaluate)
Пример #2
0
 def testEval_Fail_00(self):
     """ConstantExpression - evaluation raises for '"x" < ==' as eval fails."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs('"x" < ==')]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertRaises(ConstantExpression.ExceptionEvaluateExpression,
                       myObj.evaluate)
Пример #3
0
 def test_00(self):
     """TestConstantExpressionLinux.test_00(): 1000000UL * 1000"""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [
         t for t in myCpp.genLexPptokenAndSeqWs('1000000UL * 1000\n')
     ]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(1000000000, myObj.evaluate())
Пример #4
0
 def testConditionalExpression_01(self):
     """ConstantExpression - Conditional expression evaluation: ((1)>(2)) ? (1) : (2)\\n"""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [
         t for t in myCpp.genLexPptokenAndSeqWs('((1)>(2)) ? (1) : (2)\n')
     ]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(2, myObj.evaluate())
Пример #5
0
 def testConditionalExpressionRegex(self):
     """ConstantExpression - Conditional expression regular expression."""
     myObj = ConstantExpression.ConstantExpression([])
     m = myObj.RE_CONDITIONAL_EXPRESSION.match('(a) > (b) ? (a) : (b)')
     self.assertNotEqual(None, m)
     self.assertEqual(3, len(m.groups()))
     self.assertEqual('(a) > (b) ', m.group(1))
     self.assertEqual(' (a) ', m.group(2))
     self.assertEqual(' (b)', m.group(3))
Пример #6
0
 def testEval_Word_06(self):
     """ConstantExpression - evaluation of "(1 && 1) && ((0 > 0 ) || 1) && (true || false)"."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [
         t for t in myCpp.genLexPptokenAndSeqWs(
             '(1 && 1) && ((0 > 0 ) || 1) && (true || false)')
     ]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(1, myObj.evaluate())
Пример #7
0
 def testEval_02(self):
     """ISO/IEC 9899:1999 (E) 6.10.1-3 - evaluation of "A == 0" is true when A not defined."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs('A == 0')]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(1, myObj.evaluate())
Пример #8
0
 def testEval_00(self):
     """ConstantExpression - evaluation of "1 < 2"."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs('1 < 2')]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(1, myObj.evaluate())
Пример #9
0
 def testCtor_01(self):
     """ConstantExpression - construction with "1 < 2"."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs('1 < 2')]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual("1 < 2", str(myObj))
Пример #10
0
 def testCtor_00(self):
     """ConstantExpression - simple construction."""
     ConstantExpression.ConstantExpression([])
Пример #11
0
 def testTerneryRegexNoMatch(self):
     """ConstantExpression - Conditional expression regular expression - no match."""
     myObj = ConstantExpression.ConstantExpression([])
     m = myObj.RE_CONDITIONAL_EXPRESSION.match('(a) > (b) ? (a)  (b)')
     self.assertEqual(None, m)
Пример #12
0
 def testEval_Word_05(self):
     """ConstantExpression - evaluation of "false"."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs('false')]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(0, myObj.evaluate())
Пример #13
0
 def testEval_11(self):
     """Evaluation of long character-literal comparison "L'A' == L'B'" is False."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs("L'A' == L'B'")]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(0, myObj.evaluate())
Пример #14
0
 def testEval_04(self):
     """Evaluation of character-literal comparison "'A' == 'A'" is True."""
     myCpp = PpTokeniser.PpTokeniser()
     myToksTypes = [t for t in myCpp.genLexPptokenAndSeqWs("'A' == 'A'")]
     myObj = ConstantExpression.ConstantExpression(myToksTypes)
     self.assertEqual(1, myObj.evaluate())