@@ -149,6 +149,58 @@ public OperableObject(int num)
149149 return new OperableObject ( a . Num ^ b ) ;
150150 }
151151
152+ public static bool operator <= ( int a , OperableObject b )
153+ {
154+ return ( a <= b . Num ) ;
155+ }
156+ public static bool operator <= ( OperableObject a , OperableObject b )
157+ {
158+ return ( a . Num <= b . Num ) ;
159+ }
160+ public static bool operator <= ( OperableObject a , int b )
161+ {
162+ return ( a . Num <= b ) ;
163+ }
164+
165+ public static bool operator >= ( int a , OperableObject b )
166+ {
167+ return ( a >= b . Num ) ;
168+ }
169+ public static bool operator >= ( OperableObject a , OperableObject b )
170+ {
171+ return ( a . Num >= b . Num ) ;
172+ }
173+ public static bool operator >= ( OperableObject a , int b )
174+ {
175+ return ( a . Num >= b ) ;
176+ }
177+
178+ public static bool operator < ( int a , OperableObject b )
179+ {
180+ return ( a < b . Num ) ;
181+ }
182+ public static bool operator < ( OperableObject a , OperableObject b )
183+ {
184+ return ( a . Num < b . Num ) ;
185+ }
186+ public static bool operator < ( OperableObject a , int b )
187+ {
188+ return ( a . Num < b ) ;
189+ }
190+
191+ public static bool operator > ( int a , OperableObject b )
192+ {
193+ return ( a > b . Num ) ;
194+ }
195+ public static bool operator > ( OperableObject a , OperableObject b )
196+ {
197+ return ( a . Num > b . Num ) ;
198+ }
199+ public static bool operator > ( OperableObject a , int b )
200+ {
201+ return ( a . Num > b ) ;
202+ }
203+
152204 public static OperableObject operator << ( OperableObject a , int offset )
153205 {
154206 return new OperableObject ( a . Num << offset ) ;
@@ -161,7 +213,7 @@ public OperableObject(int num)
161213 }
162214
163215 [ Test ]
164- public void OperatorOverloads ( )
216+ public void SymmetricalOperatorOverloads ( )
165217 {
166218 string name = string . Format ( "{0}.{1}" ,
167219 typeof ( OperableObject ) . DeclaringType . Name ,
@@ -206,6 +258,18 @@ public void OperatorOverloads()
206258
207259c = a ^ b
208260assert c.Num == a.Num ^ b.Num
261+
262+ c = a <= b
263+ assert c == (a.Num <= b.Num)
264+
265+ c = a >= b
266+ assert c == (a.Num >= b.Num)
267+
268+ c = a < b
269+ assert c == (a.Num < b.Num)
270+
271+ c = a > b
272+ assert c == (a.Num > b.Num)
209273" ) ;
210274 }
211275
@@ -263,6 +327,18 @@ public void ForwardOperatorOverloads()
263327
264328c = a ^ b
265329assert c.Num == a.Num ^ b
330+
331+ c = a <= b
332+ assert c == (a.Num <= b)
333+
334+ c = a >= b
335+ assert c == (a.Num >= b)
336+
337+ c = a < b
338+ assert c == (a.Num < b)
339+
340+ c = a > b
341+ assert c == (a.Num > b)
266342" ) ;
267343 }
268344
@@ -304,6 +380,18 @@ public void ReverseOperatorOverloads()
304380
305381c = a ^ b
306382assert c.Num == a ^ b.Num
383+
384+ c = a <= b
385+ assert c == (a <= b.Num)
386+
387+ c = a >= b
388+ assert c == (a >= b.Num)
389+
390+ c = a < b
391+ assert c == (a < b.Num)
392+
393+ c = a > b
394+ assert c == (a > b.Num)
307395" ) ;
308396
309397 }
0 commit comments