changeset 489:000bddf84ad0

corrected bugs in safety analysis
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 11 Apr 2014 17:47:38 -0400
parents e04b22ce2fcd
children 60735bd452fc
files python/events.py python/prediction.py python/run-tests.sh python/tests/events.txt scripts/safety-analysis.py
diffstat 5 files changed, 26 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/python/events.py	Fri Apr 04 17:43:56 2014 -0400
+++ b/python/events.py	Fri Apr 11 17:47:38 2014 -0400
@@ -159,9 +159,9 @@
         if _others == None:
             others = objects[:i]
         for j in xrange(len(others)):
-            commonTimeInterval = objects[i].commonTimeInterval(objects[j])
+            commonTimeInterval = objects[i].commonTimeInterval(others[j])
             if not commonTimeInterval.empty():
-                interactions.append(Interaction(num, commonTimeInterval, objects[i].num, objects[j].num, objects[i], objects[j]))
+                interactions.append(Interaction(num, commonTimeInterval, objects[i].num, others[j].num, objects[i], others[j]))
                 num += 1
     return interactions
 
@@ -351,7 +351,7 @@
 if __name__ == "__main__":
     import doctest
     import unittest
-    #suite = doctest.DocFileSuite('tests/moving.txt')
-    suite = doctest.DocTestSuite()
+    suite = doctest.DocFileSuite('tests/events.txt')
+    #suite = doctest.DocTestSuite()
     unittest.TextTestRunner().run(suite)
     
--- a/python/prediction.py	Fri Apr 04 17:43:56 2014 -0400
+++ b/python/prediction.py	Fri Apr 11 17:47:38 2014 -0400
@@ -282,19 +282,19 @@
 
 class PointSetPredictionParameters(PredictionParameters):
     # todo generate several trajectories with normal adaptatoins from each position (feature)
-    def __init__(self, nPredictedTrajectories, maxSpeed):
+    def __init__(self, maxSpeed):
         PredictionParameters.__init__(self, 'point set', maxSpeed)
-        self.nPredictedTrajectories = nPredictedTrajectories
+        #self.nPredictedTrajectories = nPredictedTrajectories
     
     def generatePredictedTrajectories(self, obj, instant):
         predictedTrajectories = []        
         features = [f for f in obj.features if f.existsAtInstant(instant)]
         positions = [f.getPositionAtInstant(instant) for f in features]
         velocities = [f.getVelocityAtInstant(instant) for f in features]
-        for i in xrange(self.nPredictedTrajectories):
-            for initialPosition,initialVelocity in zip(positions, velocities):
-                predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, initialVelocity, 
-                                                                         maxSpeed = self.maxSpeed))
+        #for i in xrange(self.nPredictedTrajectories):
+        for initialPosition,initialVelocity in zip(positions, velocities):
+            predictedTrajectories.append(PredictedTrajectoryConstant(initialPosition, initialVelocity, 
+                                                                     maxSpeed = self.maxSpeed))
         return predictedTrajectories
 
 class EvasiveActionPredictionParameters(PredictionParameters):
--- a/python/run-tests.sh	Fri Apr 04 17:43:56 2014 -0400
+++ b/python/run-tests.sh	Fri Apr 11 17:47:38 2014 -0400
@@ -1,8 +1,7 @@
 #!/bin/sh
 # for file in tests/*... basename
-python moving.py
-python storage.py
+for f in ./*.py
+do
+    python $f
+done
 rm nonexistent
-python indicators.py
-python utils.py
-python prediction.py
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python/tests/events.txt	Fri Apr 11 17:47:38 2014 -0400
@@ -0,0 +1,11 @@
+>>> from events import *
+>>> from moving import MovingObject, TimeInterval
+
+>>> objects = [MovingObject(num = i, timeInterval = TimeInterval(0,10)) for i in range(10)]
+>>> interactions = createInteractions(objects)
+>>> len([i for i in interactions if len(i.roadUserNumbers) == 1])
+0
+>>> objects2 = [MovingObject(num = i, timeInterval = TimeInterval(0,10)) for i in range(100, 110)]
+>>> interactions = createInteractions(objects, objects2)
+>>> len([i for i in interactions if len(i.roadUserNumbers) == 1])
+0
--- a/scripts/safety-analysis.py	Fri Apr 04 17:43:56 2014 -0400
+++ b/scripts/safety-analysis.py	Fri Apr 11 17:47:38 2014 -0400
@@ -39,8 +39,7 @@
                                                                            steeringDistribution,
                                                                            params.useFeaturesForPrediction)
 elif predictionMethod == 'ps':
-    predictionParameters = prediction.PointSetPredictionParameters(params.nPredictedTrajectories,
-                                                                   params.maxPredictedSpeed)
+    predictionParameters = prediction.PointSetPredictionParameters(params.maxPredictedSpeed)
 # no else required, since parameters is required as argument
 
 # evasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed,