diff trafficintelligence/tests/moving.txt @ 1170:b55adb13f262

added functions on line crossing orientation and important reorganization and cleaning of related code
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 27 Sep 2021 14:05:33 -0400
parents 4b2a55d570c1
children aa88acf06876
line wrap: on
line diff
--- a/trafficintelligence/tests/moving.txt	Mon Jul 19 11:25:16 2021 -0400
+++ b/trafficintelligence/tests/moving.txt	Mon Sep 27 14:05:33 2021 -0400
@@ -90,12 +90,42 @@
 ((1.0...,1.0...), (10.0...,10.0...))
 
 >>> segmentIntersection(Point(0,0), Point(0,1), Point(1,1), Point(2,3))
+(None, None)
 >>> segmentIntersection(Point(0,1), Point(0,3), Point(1,0), Point(3,1))
+(None, None)
 >>> segmentIntersection(Point(0.,0.), Point(2.,2.), Point(0.,2.), Point(2.,0.))
-(1.000000,1.000000)
+((1.000000,1.000000), 0.5)
 >>> segmentIntersection(Point(0,0), Point(4,4), Point(0,4), Point(4,0))
-(2.000000,2.000000)
+((2.000000,2.000000), 0.5)
+>>> segmentIntersection(Point(0,0), Point(0,3), Point(1,1), Point(-1,1)) # doctest:+ELLIPSIS
+((0.000000,1.000000), 0.333...)
 >>> segmentIntersection(Point(0,1), Point(1,2), Point(2,0), Point(3,2))
+(None, None)
+
+>>> segmentOrientationCrossing(Point(0.,0.), Point(2.,2.), Point(0.,2.), Point(2.,0.))
+False
+>>> segmentOrientationCrossing(Point(0.,0.), Point(2.,2.), Point(2.,0.), Point(0.,2.))
+True
+>>> segmentOrientationCrossing(Point(0,0), Point(0,3), Point(1,1), Point(-1,1))
+True
+
+>>> o1 = MovingObject.generate(1, Point(1.,0.), Point(1.,0.), TimeInterval(0,10))
+>>> instants, intersections, rightToLeftOrientations = o1.getInstantsCrossingLine(Point(0.,3.5), Point(2.,3.5))
+>>> rightToLeftOrientations == []
+True
+>>> len(instants)
+0
+>>> o1 = MovingObject.generate(1, Point(0.,1.), Point(1.,0.), TimeInterval(0,10))	
+>>> instants, intersections, rightToLeftOrientations = o1.getInstantsCrossingLine(Point(3.5,0.), Point(3.5, 2.), False)
+>>> rightToLeftOrientations == []
+True
+>>> instants[0]
+3.5
+>>> instants, intersections, rightToLeftOrientations = o1.getInstantsCrossingLine(Point(3.5,0.), Point(3.5, 2.), True)
+>>> len(rightToLeftOrientations)
+1
+>>> rightToLeftOrientations[0]
+False
 
 >>> t1 = Trajectory.fromPointList([(92.2, 102.9), (56.7, 69.6)])
 >>> t2 = Trajectory.fromPointList([(92.2, 102.9), (56.7, 69.6)])