You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

47 lines
1.3 KiB

#!/usr/bin/env python3
from util import kSAT
from util import minisat as mSatU
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--instance", help="instance file, has to be in DIMACS format", type=str)
parser.add_argument("-r", "--result", help="minisat result file", type=str)
args = parser.parse_args()
instancePath = args.instance
if instancePath == None:
instancePath = str(input("Instance file: "))
minisatResultFile = args.result
if minisatResultFile == None:
minisatResultFile = str(input("Minisat result file: "))
print("Checking...")
print("Instance:\t%s" % instancePath)
print("Minisat result:\t%s" % minisatResultFile)
checkStr = __checkResult(instancePath, minisatResultFile)
print("check:\t\t%s" % checkStr)
def __checkResult(instancePath, minisatResultFile):
sat = kSAT.kSAT()
sat.readDIMACS(instancePath)
minisatResult = mSatU.readMinisatResult(minisatResultFile)
if minisatResult["satisfiable"]:
if sat.checkAssignment(minisatResult["assignments"]):
return "results do match"
else:
return "results do NOT match"
else:
return "unsatisfiable"
if __name__ == "__main__":
main()