Beispiel #1
0
 def testExtendVarMap(self, cnf, names):
     for pre in range(len(names)):
         varMap = VariableMap()
         for name in names[:pre]:
             varMap.addVar(name)  # fixed numbers (1,2..pre) for the first 'pre' variables
         cnf.extendVarMap(varMap)
         keys = sorted(varMap.keys())
         values = sorted([ varMap[v] for v in varMap.keys() ])
         self.compare(keys, sorted(names), 'extendVarMap wrong var names %s %s' % (names, cnf.toString()))
         self.compare(values, list(range(1, len(names)+1)), 'extendVarMap wrong numbers %s %s' % (names, cnf.toString()))
         for k,v in [ (v,varMap[v]) for v in names[:pre]]:
             self.compare(varMap[k], v, 'extendVarMap fixed mismatch %s %s' % (names, cnf.toString()))
Beispiel #2
0
 def testExtendVarMap(self, cnf, names):
     for pre in range(len(names)):
         varMap = VariableMap()
         for name in names[:pre]:
             varMap.addVar(
                 name
             )  # fixed numbers (1,2..pre) for the first 'pre' variables
         cnf.extendVarMap(varMap)
         keys = sorted(varMap.keys())
         values = sorted([varMap[v] for v in varMap.keys()])
         self.compare(
             keys, sorted(names),
             'extendVarMap wrong var names %s %s' % (names, cnf.toString()))
         self.compare(
             values, list(range(1,
                                len(names) + 1)),
             'extendVarMap wrong numbers %s %s' % (names, cnf.toString()))
         for k, v in [(v, varMap[v]) for v in names[:pre]]:
             self.compare(
                 varMap[k], v, 'extendVarMap fixed mismatch %s %s' %
                 (names, cnf.toString()))
Beispiel #3
0
    def testVarMap(self, namesPre, namesAdd):
        varMap = VariableMap(namesPre)
        for name in namesAdd:
            varMap.addVar(name)
        self.compare(sorted(varMap.keys()),
                     sorted(list(set(namesPre + namesAdd))),
                     'VariableMap: wrong variables %s' % varMap.toString())

        self.compare(
            sorted([varMap[k] for k in varMap.keys()]),
            list(range(1,
                       len(sorted(list(set(namesPre + namesAdd)))) + 1)),
            'VariableMap: wrong variable numbers %s' % varMap.toString())

        rev = varMap.reverse()
        self.compare(sorted([(k, varMap[k]) for k in varMap.keys()]),
                     sorted([(rev[k], k) for k in rev]),
                     'VariableMap: reverse() %s' % varMap.toString())

        oF = io.StringIO()
        varMap.writeToFile(oF)
        iF = io.StringIO(oF.getvalue())
        vm = VariableMap.readFromFile(iF)
        self.compare(
            sorted([(k, vm[k]) for k in vm.keys()]),
            sorted([(k, varMap[k]) for k in varMap.keys()]),
            'VariableMap read/write %s (%s)' %
            (varMap.toString(), repr(oF.getvalue())))
Beispiel #4
0
                'b': False
            }, False),
            ({
                'a': False,
                'b': True
            }, False),
            ({
                'a': False,
                'b': False
            }, False),
        ])

    #
    # testy pre VariableMap
    #
    varMap = VariableMap()
    varMap.addVar('z').addVar('y').addVar('x')
    t.compare(varMap.get('y'), 2, 'varMap.get(y)')
    t.compare(varMap['y'], 2, 'varMap[y]')

    for p in itertools.permutations(['a', 'b', 'x']):
        for l in range(3):
            t.testVarMap(p[:l], p[l:])

    #
    # testy extendVarMap
    #
    t.testExtendVarMap(
        Cnf([
            CnfClause([CnfLit('a'), CnfLit.Not('b')]),
            CnfClause([]),
Beispiel #5
0
    def testVarMap(self, namesPre, namesAdd):
        varMap = VariableMap(namesPre)
        for name in namesAdd:
            varMap.addVar(name)
        self.compare(sorted(varMap.keys()), sorted(list(set(namesPre+namesAdd))),
                'VariableMap: wrong variables %s' % varMap.toString())

        self.compare(
                sorted([varMap[k] for k in varMap.keys()]),
                list(range(1, len(sorted(list(set(namesPre+namesAdd)))) + 1)),
                'VariableMap: wrong variable numbers %s' % varMap.toString())

        rev = varMap.reverse()
        self.compare(
                sorted([ (k,varMap[k]) for k in varMap.keys()]),
                sorted([ (rev[k],k) for k in rev]),
                'VariableMap: reverse() %s' % varMap.toString())

        oF = io.StringIO()
        varMap.writeToFile(oF)
        iF = io.StringIO(oF.getvalue())
        vm = VariableMap.readFromFile(iF)
        self.compare(
                sorted([ (k,vm[k]) for k in vm.keys()]),
                sorted([ (k,varMap[k]) for k in varMap.keys()]),
                'VariableMap read/write %s (%s)' % (varMap.toString(), repr(oF.getvalue())))
Beispiel #6
0
            Cnf( [
                CnfClause( [ CnfLit('a'), CnfLit.Not('b') ] ),
                CnfClause( [ CnfLit('b') ] ),
                ]), 'a -b\nb\n',
            [
                ({'a':True, 'b':True}, True),
                ({'a':True, 'b':False}, False),
                ({'a':False, 'b':True}, False),
                ({'a':False, 'b':False}, False),
            ])


    #
    # testy pre VariableMap
    #
    varMap = VariableMap()
    varMap.addVar('z').addVar('y').addVar('x')
    t.compare( varMap.get('y'), 2, 'varMap.get(y)')
    t.compare( varMap['y'], 2, 'varMap[y]')

    for p in itertools.permutations(['a', 'b', 'x']):
        for l in range(3):
            t.testVarMap(p[:l], p[l:])

    #
    # testy extendVarMap
    #
    t.testExtendVarMap(
            Cnf( [
                CnfClause( [ CnfLit('a'), CnfLit.Not('b') ] ),
                CnfClause( [ ] ),