Example #1
0
def usage():
    print "usage {0} [options] --epdfile=epdfile".format(common.progname())
    print "options:"
    print "    --epdfile=epdfile       Input EPD file"
    print "    --timecontrol=time      The time to analyze each EPD entry"
    print "    --engine=engine         The Engine to use to process the EPD file"
    exit(1)
Example #2
0
def main():
    common.parser().add_option("--indb", dest="indb", help="Input database")

    if not common.init(__file__):
        exit(2)

    progname = common.progname()
    indb = common.options().indb
    if not indb:
        indb = common.testdir() + "/pgn/Kramnik.pgn"
    temppgn1 = common.tmpdir() + "/copydb1.pgn"
    temppgn2 = common.tmpdir() + "/copydb2.pgn"
    tempcfdb1 = common.tmpdir() + "/copydb1.cfdb"

    if run(1, indb, tempcfdb1) and run(2, tempcfdb1, temppgn1) and run(3, indb, temppgn2):
        # temppgn1 and temppgn2 should be identical
        if os.path.exists(temppgn1) and os.path.exists(temppgn2):
            lines1 = open(temppgn1, "U").readlines()
            lines2 = open(temppgn2, "U").readlines()
            diff = difflib.unified_diff(lines1, lines2)
            different = False
            first = True
            for line in diff:
                if first:
                    print "{0}: PGN files {1} and {2} are different:".format(progname, temppgn1, temppgn2)
                    different = True
                    first = False
                print line
            if not different:
                print "{0}: Test successful".format(progname)
        else:
            print "{0}: Failed; no output files to compare".format(progname)
Example #3
0
def main():
    common.parser().add_option("--epdfile", dest = "epdfile", help = "Input EPD file")
    common.parser().add_option("--timecontrol", dest="timecontrol", default = "10s", help = "Time control")
    common.parser().add_option("--engine", dest="engine", help = "The engine to use to process the EPD file")

    if not common.init(__file__):
        exit(2)

    progname = common.progname()
    debuglog = True
    logcomms = False
    logfile = common.tmpdir() + "/ccore.log"
    configfile = common.configfile()
    epdfile = common.options().epdfile
    if not epdfile:
        usage()
    timecontrol = common.options().timecontrol
    engine = common.options().engine
    if not engine:
        engine = common.engine1()

    if os.path.exists(logfile):
        os.remove(logfile)

    # Take a copy of the database
    cmdline = common.ccore()
    if debuglog:
        cmdline += " --debuglog true"
    if logcomms:
        cmdline += " --logcomms true"
    cmdline += " -c {0} -l {1} -e {2} -t {3} processepd {4}".format(configfile, logfile, epdfile, timecontrol, engine);
    if common.runccore(cmdline):
        common.checkLogfile(logfile)
Example #4
0
def main():
    common.parser().add_option("--indb", dest = "indb", help = "Input database")
    common.parser().add_option("--outdb", dest = "outdb", help = "Output database")
    common.parser().add_option("--firstgame", dest="firstgame", help = "First game in input database to analyze")
    common.parser().add_option("--lastgame", dest="lastgame",help = "First game in input database to analyze")
    common.parser().add_option("--ecofile", dest = "ecofile", help = "The (.cfdb) database containing the ECO classification")

    if not common.init(__file__):
        exit(2)

    progname = common.progname()
    debuglog = True
    logcomms = False
    logfile1 = common.tmpdir() + "/ccore1.log"
    logfile2 = common.tmpdir() + "/ccore2.log"
    configfile = common.configfile()
    indb = common.options().indb
    if not indb:
        indb = common.testdir() + "/pgn/Boris_Spassky.pgn"
    outdb = common.options().outdb
    if not outdb:
        outdb = common.tmpdir() + "/classified.cfdb"
        if os.path.exists(outdb):
            os.remove(outdb)
    ecofile = common.options().ecofile
    if not ecofile:
        ecofile = common.testdir() + "/cfdb/eco.cfdb"
    firstgame = common.options().firstgame
    lastgame = common.options().lastgame

    if os.path.exists(logfile1):
        os.remove(logfile1)
    if os.path.exists(logfile2):
        os.remove(logfile2)

    # Take a copy of the database
    cmdline = common.ccore()
    if debuglog:
        cmdline += " --debuglog true"
    if logcomms:
        cmdline += " --logcomms true"
    if firstgame:
        cmdline += " -n {0}".format(firstgame)
    if lastgame:
        cmdline += " -N {0}".format(lastgame)
    cmdline += " -l {0} -i {1} -o {2} copydb".format(logfile1, indb, outdb);
    if common.runccore(cmdline):
        common.checkLogfile(logfile1)

        # And then classify the copy
        cmdline = common.ccore()
        if debuglog:
            cmdline += " --debuglog true"
        if logcomms:
            cmdline += " --logcomms true"
        cmdline += " -l {0} -i {1} -E {2} classify".format(logfile2, outdb, ecofile)
        if common.runccore(cmdline):
            common.checkLogfile(logfile2)
Example #5
0
def usage():
    print "usage {0} [options]".format(common.progname())
    print "options:"
    print "    --indb=database         The input database"
    print "    --outdb=database        The output database"    
    print "    --firstgame=number      The first game in the input database to analyze"
    print "    --lastgame=number       The last game in the input database to analyze"
    print "    --ecofile=database      The (.cfdb) database containing the ECO classification"
    exit(1)
Example #6
0
def main():
    common.parser().add_option("--indb", dest = "indb", help = "Input database")
    common.parser().add_option("--outdb", dest = "outdb", help = "Output database")
    
    if not common.init(__file__):
        exit(2)

    progname = common.progname()
    debuglog = True
    logfile1 = common.tmpdir() + "/ccore1.log"
    logfile2 = common.tmpdir() + "/ccore2.log"
    indb = common.options().indb
    if not indb:
        indb = common.rootdir() + "/doc/OpeningClassification/eco.pgn"
    outdb = common.options().outdb
    if not outdb:
        outdb = common.testdir() + "/cfdb/eco.cfdb"

    if os.path.exists(logfile1):
        os.remove(logfile1)
    if os.path.exists(logfile2):
        os.remove(logfile2)
    if os.path.exists(outdb):
        os.remove(outdb)

    # Copy the database
    cmdline = common.ccore()
    if debuglog:
        cmdline += " --debuglog true"

    cmdline += " -l {0} -i {1} -o {2} copydb".format(logfile1, indb, outdb)
    if common.runccore(cmdline):
        common.checkLogfile(logfile1)

        # Create the opening tree in the output database
        cmdline = common.ccore()
        if debuglog:
            cmdline += " --debuglog true"
        cmdline += " -l {0} -i {1} -d 100 buildoptree".format(logfile2, outdb)
        if common.runccore(cmdline):
            common.checkLogfile(logfile2)
Example #7
0
def main():
    common.parser().add_option("--engine1", dest = "engine1", help = "Engine #1")
    common.parser().add_option("--engine2", dest = "engine2", help = "Engine #2")
    common.parser().add_option("--numgames", dest = "numgames", type = "int", default = 5, help = "Number of games")
    common.parser().add_option("--timecontrol", dest = "timecontrol", default = "30", help = "Time control")
    common.parser().add_option("--ecofile", dest = "ecofile", help = "The (.cfdb) database containing the ECO classification")
    common.parser().add_option("--logcomms", dest = "logcomms", type = "int", default = 0, help = "Log UCI comms")

    if not common.init(__file__):
        exit(2)

    progname = common.progname()
    debuglog = True
    logcomms = common.options().logcomms != 0
    logfile = common.tmpdir() + "/ccore.log"
    pgnfile = common.tmpdir() + "/games.pgn"
    configfile = common.configfile()
    ecofile = common.options().ecofile
    if not ecofile:
        ecofile = common.testdir() + "/cfdb/eco.cfdb"
    engine1 = common.options().engine1
    if not engine1:
        engine1 = common.engine1()
    engine2 = common.options().engine2
    if not engine2:
        engine2 = common.engine2()
    numgames = common.options().numgames
    timecontrol = common.options().timecontrol

    if os.path.exists(logfile):
        os.remove(logfile)

    cmdline = common.ccore()
    if debuglog:
        cmdline += " --debuglog true"
    if logcomms:
        cmdline += " --logcomms true"
    cmdline += " -c {0} -l {1} -o {2} -E {3} -n {4} -t {5} tournament {6} {7}".format(configfile, logfile, pgnfile, ecofile, numgames, timecontrol, engine1, engine2)
    if common.runccore(cmdline):
        common.checkLogfile(logfile)
Example #8
0
def usage():
    print "usage: {0} [options]".format(common.progname())
    print "options:"
    print "    --indb=database         The input database"
    exit(1)
Example #9
0
def run(runcycle, indb, outdb):
    progname = common.progname()
    logfile1 = common.tmpdir() + "/copy" + str(runcycle) + ".log"
    logfile2 = common.tmpdir() + "/validate" + str(runcycle) + ".log"
    if not os.path.exists(indb):
        print "{0}: Input database {1} does not exist".format(progname, indb)
        return False
    if os.path.exists(logfile1):
        os.remove(logfile1)
    if os.path.exists(logfile2):
        os.remove(logfile2)
    if os.path.exists(outdb):
        os.remove(outdb)

    print "========================================================================================"
    print "{0}: Copying {1} to {2}".format(progname, indb, outdb)

    cmdline = common.ccore()
    cmdline += " -l {0} -i {1} -o {2} --quiet=true --debuglog=true copydb".format(logfile1, indb, outdb)
    if not common.runccore(cmdline):
        return False

    common.checkLogfile(logfile1)

    # Check that the copy was successful
    found = False
    f = open(logfile1, "r")
    for line in f:
        if re.search("Successfully copied database", line):
            found = True
            break
    if found:
        print "{0}: Copy successful".format(progname)
    else:
        print "{0}: Copy failed".format(progname)
        return False

    print "----------------------------------------------------------------------------------------"
    print "{0}: Validating {1}".format(progname, outdb)

    cmdline = common.ccore()
    cmdline += " -l {0} -i {1} --quiet true --debuglog true validatedb".format(logfile2, outdb)
    if not common.runccore(cmdline):
        return False

    common.checkLogfile(logfile2)

    # Check that the validate was successful
    found = False
    f = open(logfile2, "r")
    for line in f:
        if re.search("Database is valid", line):
            found = True
            break
    if found:
        print "{0}: Validate successful".format(progname)
    else:
        print "{0}: Validate failed".format(progname)
        return False

    return True
Example #10
0
def usage():
    print "usage: {0} [options]".format(common.progname())
    print "options:"
    print "    --indb=database         Input database (in a special format; see doc/OpeningClassification/eco.pgn"
    print "    --outdb=database        Output database (must be a .cfdb file)"
    exit(1)