Mercurial Hosting > traffic-intelligence
view trafficintelligence/tests/events.txt @ 1192:606817bc31e8
bug correction
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 29 Jun 2022 23:02:47 +0200 |
parents | 658f87232536 |
children | af329f3330ba |
line wrap: on
line source
>>> from trafficintelligence.events import * >>> from trafficintelligence.moving import MovingObject, TimeInterval, Point >>> from trafficintelligence.prediction import ConstantPredictionParameters >>> 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 >>> len(interactions) 45 >>> 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 >>> objects3 = [MovingObject(num = i, timeInterval = TimeInterval(12,22)) for i in range(100, 110)] >>> interactions = createInteractions(objects, objects3) >>> len(interactions) 0 >>> interactions = createInteractions(objects, objects3, 3) >>> len(interactions) 100 >>> interactions[0].getTimeInterval().empty() True >>> o1 = MovingObject.generate(1, Point(-5.,0.), Point(0.,0.), TimeInterval(0,10)) >>> o2 = MovingObject.generate(2, Point(0.,-5.), Point(0.,1.), TimeInterval(0,10)) >>> inter = Interaction(roadUser1 = o1, roadUser2 = o2) >>> inter.computeIndicators() # should not crash with 0 speed >>> va = inter.getIndicator("Velocity Angle") >>> va.empty() True >>> o1 = MovingObject.generate(1, Point(-5.,0.), Point(1.,0.), TimeInterval(0,10)) >>> o2 = MovingObject.generate(2, Point(0.,-5.), Point(0.,1.), TimeInterval(0,10)) >>> inter = Interaction(roadUser1 = o1, roadUser2 = o2) >>> inter.computeIndicators() >>> predictionParams = ConstantPredictionParameters(10.) >>> inter.computeCrossingsCollisions(predictionParams, 0.1, 10) >>> ttc = inter.getIndicator("Time to Collision") >>> ttc[0] 5.0 >>> ttc[1] 4.0 >>> (inter.collisionPoints[0][0] - Point(0.,0.)).norm2() < 0.0001 True >>> (inter.collisionPoints[4][0] - Point(0.,0.)).norm2() < 0.0001 True >>> inter.getIndicator(Interaction.indicatorNames[1])[4] < 0.000001 # collision angle True >>> inter.getIndicator(Interaction.indicatorNames[1])[5] is None True >>> inter.getIndicator(Interaction.indicatorNames[1])[6] # doctest:+ELLIPSIS 3.1415... # test categorize >>> from collections import Counter >>> from numpy import pi >>> o1 = MovingObject.generate(0, Point(0,0), Point(1,0), TimeInterval(0,100)) >>> o2 = MovingObject.generate(0, Point(100,1), Point(-1,0), TimeInterval(0,100)) >>> inter12 = Interaction(roadUser1 = o1, roadUser2 = o2) >>> inter12.computeIndicators() >>> inter12.categorize(pi*20/180, pi*60/180) >>> Counter(inter12.categories.values()).most_common()[0][0] # head on 0 >>> inter12.categories[max(inter12.categories.keys())] # then side 2 >>> o3 = MovingObject.generate(0, Point(0,2), Point(1,0), TimeInterval(0,100)) >>> inter13 = Interaction(roadUser1 = o1, roadUser2 = o3) >>> inter13.computeIndicators() >>> inter13.categorize(pi*20/180, pi*60/180) >>> Counter(inter13.categories.values()).most_common()[0][0] # parallel 3 >>> len(Counter(inter13.categories.values())) 1 >>> o4 = MovingObject.generate(0, Point(100,20), Point(-1,0), TimeInterval(0,100)) >>> inter14 = Interaction(roadUser1 = o1, roadUser2 = o4) >>> inter14.computeIndicators() >>> inter14.categorize(pi*20/180, pi*60/180) >>> Counter(inter14.categories.values()).most_common()[0][0] # side 2 >>> inter12.categories[0] # first head one 0 >>> inter12.categories[max(inter12.categories.keys())] # then side 2 >>> o5 = MovingObject.generate(0, Point(50,50), Point(0,-1), TimeInterval(0,100)) >>> inter15 = Interaction(roadUser1 = o1, roadUser2 = o5) >>> inter15.computeIndicators() >>> inter15.categorize(pi*20/180, pi*60/180) >>> Counter(inter15.categories.values()).most_common()[0][0] # side 2 >>> len(Counter(inter15.categories.values())) 1