Exemple #1
0
    def testNestedLogicalOr(self):
        gen = self.generator
        varsToAdd = [('bool', 'A'), ('bool', 'B'), ('bool', 'C')]
        gen.addVariables(varsToAdd)
        exprToAdd = "Or(v['A'], And(v['B'],v['C']))"
        expression = createExpression(gen.variables, exprToAdd)
        res = gen.findSolutions(expression)
        expected = [{
            'B': True,
            'C': True
        }, {
            'A': False,
            'B': True,
            'C': False
        }, {
            'A': False,
            'B': False,
            'C': True
        }, {
            'A': True,
            'B': False,
            'C': False
        }, {
            'A': False,
            'B': False,
            'C': False
        }, {
            'A': True,
            'B': False,
            'C': True
        }]
        self.assertEquals(len(res), 6)
        for exp in expected:

            self.assertTrue(exp in res)
Exemple #2
0
 def testLogicalNot(self):
     gen = self.generator
     varsToAdd = [('bool', 'A')]
     gen.addVariables(varsToAdd)
     exprToAdd = "Not(v['A'])"
     expression = createExpression(gen.variables, exprToAdd)
     res = gen.findSolutions(expression)
     expected = [{'A': True}, {'A': False}]
     self.assertEquals(len(res), 2)
     for exp in expected:
         self.assertTrue(exp in res)
Exemple #3
0
 def testComparators(self):
     gen = self.generator
     varsToAdd = [('int', 'u'), ('int', 'x'), ('int', 'y'), ('int', 'z')]
     gen.addVariables(varsToAdd)
     exprToAdd = "And(Or(v['u']==0, v['x']>5),Or(v['y']<6,v['z']==0))"
     expression = createExpression(gen.variables, exprToAdd)
     res = gen.findSolutions(expression)
     expected = [{
         'x': 6,
         'y': 0
     }, {
         'x': 6,
         'y': 6,
         'z': 1
     }, {
         'u': 1,
         'x': 0,
         'y': 0
     }, {
         'u': 3,
         'x': 7,
         'y': 2
     }, {
         'u': 3,
         'x': 8,
         'y': 2,
         'z': 4
     }, {
         'u': 3,
         'x': 0,
         'y': 2
     }, {
         'u': 3,
         'x': 8,
         'y': 2,
         'z': 1
     }, {
         'u': 1,
         'x': 0,
         'y': 2
     }]
     self.assertEquals(len(res), 8)
     for exp in expected:
         self.assertTrue(exp in res)
Exemple #4
0
 def convertExpressions(self, _expr):
     return [createExpression(self.variables, e) for e in _expr]