Browse Source

Add RpnSymbol and RpnExpr __eq__ methods

Yann Weber 6 years ago
parent
commit
de825780e6
1 changed files with 13 additions and 0 deletions
  1. 13
    0
      gte/rpnlib.py

+ 13
- 0
gte/rpnlib.py View File

@@ -80,6 +80,14 @@ class RpnExpr(list):
80 80
                         for sym in self])
81 81
         return ' '.join([str(sym) for sym in self])
82 82
 
83
+    def __eq__(self, b):
84
+        if len(self) != len(b):
85
+            return False
86
+        for i in range(len(self)):
87
+            if self[i] != b[i]:
88
+                return False
89
+        return True
90
+
83 91
     @classmethod
84 92
     def random(cls, sz):
85 93
         return cls([RpnSymbol.random() for _ in range(sz)])
@@ -158,6 +166,11 @@ class RpnSymbol(object):
158 166
                         self.__class__.__name__)
159 167
         return '<%s %s(%s)>' % (name, optype, self.value)
160 168
 
169
+    def __eq__(self, b):
170
+        if not isinstance(b, RpnSymbol):
171
+            return False
172
+        return b.optype == self.optype and b.value == self.value
173
+
161 174
     @classmethod
162 175
     def from_string(cls, val):
163 176
         try:

Loading…
Cancel
Save