Mercurial Hosting > traffic-intelligence
changeset 776:84420159c5f4 dev
added __eq__ functions for Point and Trajectory
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 05 Feb 2016 17:17:12 -0500 |
parents | 56153d439f8c |
children | ef6dd60be2e1 |
files | python/moving.py python/tests/moving.txt |
diffstat | 2 files changed, 36 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/python/moving.py Fri Feb 05 12:28:18 2016 -0500 +++ b/python/moving.py Fri Feb 05 17:17:12 2016 -0500 @@ -35,6 +35,9 @@ def __repr__(self): return self.__str__() + def __eq__(self, other): + return ((self.first == other.first) and (self.last == other.last)) or ((self.first == other.last) and (self.last == other.first)) + def empty(self): return self.first > self.last @@ -182,6 +185,9 @@ def __repr__(self): return self.__str__() + def __eq__(self, other): + return (self.x == other.x) and (self.y == other.y) + def __add__(self, other): return Point(self.x+other.x, self.y+other.y) @@ -660,7 +666,6 @@ def __repr__(self): return self.__str__() - def __iter__(self): self.iterInstantNum = 0 return self @@ -672,6 +677,15 @@ self.iterInstantNum += 1 return self[self.iterInstantNum-1] + def __eq__(self, other): + if self.length() == other.length(): + result = True + for p, po in zip(self, other): + result = result and (p == po) + return result + else: + return False + def setPositionXY(self, i, x, y): if i < self.__len__(): self.positions[0][i] = x
--- a/python/tests/moving.txt Fri Feb 05 12:28:18 2016 -0500 +++ b/python/tests/moving.txt Fri Feb 05 17:17:12 2016 -0500 @@ -19,6 +19,12 @@ 2.0 >>> TimeInterval(10,8).length() 0.0 +>>> TimeInterval(10,8) == TimeInterval(10,8) +True +>>> TimeInterval(10,8) == TimeInterval(8,10) +True +>>> TimeInterval(11,8) == TimeInterval(10,8) +False >>> [i for i in TimeInterval(9,13)] [9, 10, 11, 12, 13] @@ -41,6 +47,10 @@ >>> TimeInterval.unionIntervals([TimeInterval(3,6), TimeInterval(8,10),TimeInterval(11,15)]) [3, 15] +>>> Point(0,3) == Point(0,3) +True +>>> Point(0,3) == Point(0,3.2) +False >>> Point(3,4)-Point(1,7) (2.000000,-3.000000) >>> -Point(1,2) @@ -70,6 +80,17 @@ (2.000000,2.000000) >>> segmentIntersection(Point(0,1), Point(1,2), Point(2,0), Point(3,2)) +>>> t1 = Trajectory.fromPointList([(92.2, 102.9), (56.7, 69.6)]) +>>> t2 = Trajectory.fromPointList([(92.2, 102.9), (56.7, 69.6)]) +>>> t1 == t2 +True +>>> t3 = Trajectory.fromPointList([(92.24, 102.9), (56.7, 69.6)]) +>>> t1 == t3 +False +>>> t3 = Trajectory.fromPointList([(92.2, 102.9), (56.7, 69.6), (56.7, 69.6)]) +>>> t1 == t3 +False + >>> left = Trajectory.fromPointList([(92.291666666666686, 102.99239033124439), (56.774193548387103, 69.688898836168306)]) >>> middle = Trajectory.fromPointList([(87.211021505376351, 93.390778871978512), (59.032258064516128, 67.540286481647257)]) >>> right = Trajectory.fromPointList([(118.82392473118281, 115.68263205013426), (63.172043010752688, 66.600268576544309)])