Skip to content

Commit

Permalink
complex output tests, refs #21
Browse files Browse the repository at this point in the history
git-svn-id: file:///home/behr_mi/git/sumo_synched/trunk@15326 afbd958f-9f77-42d5-a016-97a22340ccf4
  • Loading branch information
behrisch committed Dec 15, 2013
1 parent aafeeff commit 63b623e
Show file tree
Hide file tree
Showing 136 changed files with 44 additions and 568 deletions.
@@ -1,5 +1,5 @@
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo-sim.org/xsd/routes_file.xsd">
<vType id="DEFAULT_VEHTYPE" accel="0.8" decel="4.5" sigma="0" length="3" minGap="2" maxSpeed="10"/>
<route id="r1" edges="4/1to3/1 3/1to2/1 2/1to1/1 1/1to0/1"/>
<vehicle id="0.99" depart="0" departSpeed="10" departPos="100" route="r1"/>
<vehicle id="0" depart="0.99" departSpeed="10" departPos="100" route="r1"/>
</routes>

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

1 change: 1 addition & 0 deletions sumo/tests/complex/sumo/output/one_vehicle/options.complex
@@ -0,0 +1 @@
3/1to2/1_0 4/1to3/1_0 tests/complex/sumo/output/runner.py
21 changes: 0 additions & 21 deletions sumo/tests/complex/sumo/output/one_vehicle/testsuite.complex

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

Empty file.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

Empty file.

This file was deleted.

Empty file.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

Empty file.
66 changes: 38 additions & 28 deletions sumo/tests/complex/sumo/output/runner.py
Expand Up @@ -6,9 +6,9 @@

class OutputHandler(handler.ContentHandler):

def __init__(self, edges):
self.edges = edges
self.speed = dict([(l, defaultdict(dict)) for l in edges.itervalues()])
def __init__(self, lanes):
self.lanes = lanes
self.speed = dict([(l, defaultdict(dict)) for l in lanes])
self.intervals = set()

def startElement(self, name, attrs):
Expand All @@ -25,9 +25,9 @@ def startElement(self, name, attrs):
self.speed[lane]["e3"][self.interval] = float(attrs["meanSpeedWithin"])
if self.speed[lane]["e3"][self.interval] == -1.:
self.speed[lane]["e3"][self.interval] = float(attrs["meanSpeed"])
if name == "edge" and "id" in attrs and attrs["id"] in self.edges and "speed" in attrs:
self.speed[edges[attrs["id"]]]["edge"][self.interval] = float(attrs["speed"])
if name == "lane" and "id" in attrs and attrs["id"] in self.edges.values() and "speed" in attrs:
if name == "edge" and "id" in attrs and attrs["id"]+"_0" in self.lanes and "speed" in attrs:
self.speed[attrs["id"]+"_0"]["edge"][self.interval] = float(attrs["speed"])
if name == "lane" and "id" in attrs and attrs["id"] in self.lanes and "speed" in attrs:
self.speed[attrs["id"]]["lane"][self.interval] = float(attrs["speed"])

def generateDetectorDef(out, freq, enableLoop, laneIDs):
Expand All @@ -44,30 +44,40 @@ def generateDetectorDef(out, freq, enableLoop, laneIDs):
<laneData id="dump_15" freq="%s" file="meandatalane.xml" excludeEmpty="true"/>
</additional>""" % (freq, freq), file=out)

withLoop = float(sys.argv[1]) > 50

def checkOutput(args, withLoop, lanes):
handler = OutputHandler(lanes)
for f in ["detector.xml", "meandataedge.xml", "meandatalane.xml"]:
if os.path.exists(f):
parse(f, handler)
for i in sorted(handler.intervals):
for lane in lanes:
if withLoop:
vals = [handler.speed[lane][type].get(i, -1.) for type in ["e1", "e2", "e3", "edge", "lane"]]
else:
vals = [handler.speed[lane][type].get(i, -1.) for type in ["e2", "e3", "edge", "lane"]]
for v in vals[:-1]:
if abs(v - vals[-1]) > 0.001:
print("failed", args, lane, i, vals)
return
print("success", args, lanes)

sumoBinary = os.environ.get("SUMO_BINARY", os.path.join(os.path.dirname(sys.argv[0]), '..', '..', '..', '..', 'bin', 'sumo'))
sumoArgStart = len(sys.argv)
for idx, arg in enumerate(sys.argv):
if arg[0] == "-":
sumoArgStart = idx
break
lanes = sys.argv[2:sumoArgStart]
edges = dict([(l[:-2], l) for l in lanes])
with open("input_additional.add.xml", 'w') as out:
generateDetectorDef(out, sys.argv[1], withLoop, lanes)
sumoBinary = os.environ.get("SUMO_BINARY", os.path.join(os.path.dirname(sys.argv[0]), '..', '..', '..', '..', 'bin', 'sumo'))
subprocess.call([sumoBinary, "-c", "sumo.sumocfg"] + sys.argv[sumoArgStart:], shell=(os.name=="nt"), stdout=sys.stdout, stderr=sys.stderr)
handler = OutputHandler(edges)
for f in ["detector.xml", "meandataedge.xml", "meandatalane.xml"]:
if os.path.exists(f):
parse(f, handler)

for i in sorted(handler.intervals):
for lane in lanes:
if withLoop:
vals = [handler.speed[lane][type].get(i, -1.) for type in ["e1", "e2", "e3", "edge", "lane"]]
else:
vals = [handler.speed[lane][type].get(i, -1.) for type in ["e2", "e3", "edge", "lane"]]
for v in vals[:-1]:
if abs(v - vals[-1]) > 0.001:
print(lane, i, vals)
break
lanes = sys.argv[1:sumoArgStart]
for stepLength in [".1", "1"]:
for end in ["51", "100"]:
args = sys.argv[sumoArgStart:] + ["--step-length", stepLength, "--end", end]
for freq in [.1, 1, 10, 100]:
withLoop = freq > 50
for numLanes in range(1, len(lanes) + 1):
with open("input_additional.add.xml", 'w') as out:
generateDetectorDef(out, freq, withLoop, lanes[:numLanes])
subprocess.call([sumoBinary, "-c", "sumo.sumocfg"] + args, shell=(os.name=="nt"), stdout=sys.stdout, stderr=sys.stderr)
sys.stdout.flush()
checkOutput(args, withLoop, lanes[:numLanes])
sys.stdout.flush()

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

This file was deleted.

Empty file.
@@ -0,0 +1 @@
3/1to2/1_0 4/1to3/1_0 tests/complex/sumo/output/runner.py
21 changes: 0 additions & 21 deletions sumo/tests/complex/sumo/output/two_same_vehicles/testsuite.complex

This file was deleted.

Empty file.

This file was deleted.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

This file was deleted.

Empty file.
Empty file.

This file was deleted.

This file was deleted.

Empty file.

0 comments on commit 63b623e

Please sign in to comment.