@@ -121,6 +121,58 @@ public OperableObject(int num)
121121 return new OperableObject ( a . Num ^ b ) ;
122122 }
123123
124+ public static bool operator <= ( int a , OperableObject b )
125+ {
126+ return ( a <= b . Num ) ;
127+ }
128+ public static bool operator <= ( OperableObject a , OperableObject b )
129+ {
130+ return ( a . Num <= b . Num ) ;
131+ }
132+ public static bool operator <= ( OperableObject a , int b )
133+ {
134+ return ( a . Num <= b ) ;
135+ }
136+
137+ public static bool operator >= ( int a , OperableObject b )
138+ {
139+ return ( a >= b . Num ) ;
140+ }
141+ public static bool operator >= ( OperableObject a , OperableObject b )
142+ {
143+ return ( a . Num >= b . Num ) ;
144+ }
145+ public static bool operator >= ( OperableObject a , int b )
146+ {
147+ return ( a . Num >= b ) ;
148+ }
149+
150+ public static bool operator < ( int a , OperableObject b )
151+ {
152+ return ( a < b . Num ) ;
153+ }
154+ public static bool operator < ( OperableObject a , OperableObject b )
155+ {
156+ return ( a . Num < b . Num ) ;
157+ }
158+ public static bool operator < ( OperableObject a , int b )
159+ {
160+ return ( a . Num < b ) ;
161+ }
162+
163+ public static bool operator > ( int a , OperableObject b )
164+ {
165+ return ( a > b . Num ) ;
166+ }
167+ public static bool operator > ( OperableObject a , OperableObject b )
168+ {
169+ return ( a . Num > b . Num ) ;
170+ }
171+ public static bool operator > ( OperableObject a , int b )
172+ {
173+ return ( a . Num > b ) ;
174+ }
175+
124176 public static OperableObject operator << ( OperableObject a , int offset )
125177 {
126178 return new OperableObject ( a . Num << offset ) ;
@@ -133,7 +185,7 @@ public OperableObject(int num)
133185 }
134186
135187 [ Test ]
136- public void OperatorOverloads ( )
188+ public void SymmetricalOperatorOverloads ( )
137189 {
138190 string name = string . Format ( "{0}.{1}" ,
139191 typeof ( OperableObject ) . DeclaringType . Name ,
@@ -165,6 +217,18 @@ public void OperatorOverloads()
165217
166218c = a ^ b
167219assert c.Num == a.Num ^ b.Num
220+
221+ c = a <= b
222+ assert c == (a.Num <= b.Num)
223+
224+ c = a >= b
225+ assert c == (a.Num >= b.Num)
226+
227+ c = a < b
228+ assert c == (a.Num < b.Num)
229+
230+ c = a > b
231+ assert c == (a.Num > b.Num)
168232" ) ;
169233 }
170234 [ Test ]
@@ -200,6 +264,18 @@ public void ForwardOperatorOverloads()
200264
201265c = a ^ b
202266assert c.Num == a.Num ^ b
267+
268+ c = a <= b
269+ assert c == (a.Num <= b)
270+
271+ c = a >= b
272+ assert c == (a.Num >= b)
273+
274+ c = a < b
275+ assert c == (a.Num < b)
276+
277+ c = a > b
278+ assert c == (a.Num > b)
203279" ) ;
204280 }
205281
@@ -235,6 +311,18 @@ public void ReverseOperatorOverloads()
235311
236312c = a ^ b
237313assert c.Num == a ^ b.Num
314+
315+ c = a <= b
316+ assert c == (a <= b.Num)
317+
318+ c = a >= b
319+ assert c == (a >= b.Num)
320+
321+ c = a < b
322+ assert c == (a < b.Num)
323+
324+ c = a > b
325+ assert c == (a > b.Num)
238326" ) ;
239327
240328 }
0 commit comments