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)])