Commit 2e01c9dd authored by Mohcine Chraibi's avatar Mohcine Chraibi

Start implementing Rimea

1. Use the JPSRunTest class
2. Silence some PyLint errors
3. Add some information according PEP8
parent 1e51d4c8
# coding:utf-8
Class for benchmarking of jpscore
See template_test/How_to_make_new_test.txt
import fnmatch
import glob
import logging
......@@ -9,14 +15,19 @@ import sys
__author__ = 'Oliver Schmidts'
__email__ = ''
__credits__ = ['Oliver Schmidts', 'Mohcine Chraibi']
__copyright__ = '<2009-2015> Forschungszentrum Jülich GmbH. All rights reserved.'
__license__ = 'GNU Lesser General Public License'
__version__ = '0.1'
__status__ = 'Production'
class JPSRunTestDriver(object):
def __init__(self, testnumber, argv0, testdir):
self.SUCCESS = 0
self.FAILURE = 1
# check if testnumber is an int
# check if testnumber is digit
assert isinstance(testnumber, float) or isinstance(testnumber, int)
# only allow path and strings as path directory name
assert path.exists(argv0)
......@@ -27,8 +38,7 @@ class JPSRunTestDriver(object):
self.logfile = os.path.join(testdir, self.logfile)
# touch file if not already there
f = open(self.logfile, 'a')
open(self.logfile, 'a').close()
logging.basicConfig(filename=self.logfile, level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
self.HOME = path.expanduser("~")
......@@ -47,11 +57,11 @@ class JPSRunTestDriver(object):
def __configure(self):
if self.CWD != self.DIR:"working dir is %s. Change to %s" % (os.getcwd(), self.DIR))"working dir is %s. Change to %s", os.getcwd(), self.DIR)
os.chdir(self.DIR)"change directory to ..")
os.chdir("..")"call with -f %s" % self.FILE)"call with -f %s", self.FILE)["python", "", "-f", "%s" % self.FILE])
# -------- get directory of the code TRUNK
......@@ -60,17 +70,17 @@ class JPSRunTestDriver(object):
lib_path = os.path.abspath(os.path.join(self.trunk, "Utest"))
sys.path.append(lib_path)"change directory back to %s" % self.DIR)"change directory back to %s", self.DIR)
# initialise the inputfiles for jpscore
self.geofile = os.path.join(self.DIR, "geometry.xml")
self.inifiles = glob.glob(os.path.join("inifiles", "*.xml"))
if not path.exists(self.geofile):
logging.critical("geofile <%s> does not exist" % self.geofile)
logging.critical("geofile <%s> does not exist", self.geofile)
for inifile in self.inifiles:
if not path.exists(inifile):
logging.critical("inifile <%s> does not exist" % inifile)
logging.critical("inifile <%s> does not exist", inifile)
......@@ -84,11 +94,12 @@ class JPSRunTestDriver(object):
for filename in fnmatch.filter(filenames, 'jpscore.exe'):
matches.append(os.path.join(root, filename))
if len(matches) == 0:
logging.critical("executable <%s> or jpscore.exe does not exist yet." % executable)
logging.critical("executable <%s> or jpscore.exe does not exist yet.", executable)
elif len(matches) > 1:
matches = ((os.stat(file_path), file_path) for file_path in matches)
matches = ((stat[ST_MTIME], file_path) for stat, file_path in matches if S_ISREG(stat[ST_MODE]))
matches = ((stat[ST_MTIME], file_path)
for stat, file_path in matches if S_ISREG(stat[ST_MODE]))
matches = sorted(matches)
executable = matches[0]
# end fix for windows
......@@ -97,13 +108,14 @@ class JPSRunTestDriver(object):
def __execute_test(self, executable, inifile, testfunction, *args):
cmd = "%s --inifile=%s"%(executable, inifile)'start simulating with exe=<%s>' % cmd)'start simulating with exe=<%s>', cmd)[executable, "--inifile=%s" % inifile])'end simulation ...\n--------------\n')
trajfile = os.path.join("trajectories", "traj" + inifile.split("ini")[2])'trajfile = <%s>' % trajfile)'trajfile = <%s>', trajfile)
if not path.exists(trajfile):
logging.critical("trajfile <%s> does not exist" % trajfile)
logging.critical("trajfile <%s> does not exist", trajfile)
testfunction(inifile, trajfile, *args)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geometry version="0.5" caption="second life" unit="m"
<room id="0" caption="hall">
<subroom id="0" closed="0" class="subroom">
<?xml version="1.0" encoding="UTF-8" ?>
<JuPedSim project="JPS-Project" version="0.5"
<!-- seed used for initialising random generator -->
......@@ -15,7 +15,7 @@ xsi:noNamespaceSchemaLocation="../../xsd/jps_ini_core.xsd">
<!--<socket hostname="" port="8989"/> -->
<!-- where to store the logs -->
<!--<logfile>log.txt</logfile> -->
<!-- traffic information: e.g closed doors -->
......@@ -26,14 +26,13 @@ xsi:noNamespaceSchemaLocation="../../xsd/jps_ini_core.xsd">
<!--persons information and distribution -->
<agents operational_model_id="1">
<agents operational_model_id="2"> <!-- use Gompertz -->
<group group_id="0" agent_parameter_id="1" room_id="0" subroom_id="0" number="1" goal_id="-1" router_id="1" start_x="0" start_y="1" />
<!-- These parameters may be overwritten -->
<!-- These parameters may be overwritten -->
<model operational_model_id="1" description="gcfm">
......@@ -65,7 +64,7 @@ xsi:noNamespaceSchemaLocation="../../xsd/jps_ini_core.xsd">
<model operational_model_id="2" description="gompertz">
<linkedcells enabled="true" cell_size="2.2" />
<force_ped nu="3" b="0.25" c="3.0"/>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment