@@ -279,4 +279,90 @@ def test_tuple_indexer(self):
279279 array1 [0 ,0 ] = 5
280280 self .assertEqual (array1 [0 ,0 ], array1 [(0 ,0 )])
281281
282+ def test_equality (self ):
283+ a = System .Array .CreateInstance (int , 5 )
284+ a2 = System .Array .CreateInstance (int , 5 ) # same as a
285+ b = System .Array .CreateInstance (int , 5 , 6 ) # different rank
286+ c = System .Array .CreateInstance (int , 6 ) # different length
287+ d = System .Array .CreateInstance (int , (5 ,), (1 ,)) # different base
288+ e = System .Array .CreateInstance (System .Int32 , 5 ) # different element type
289+ l = [0 ] * 5 # different type
290+
291+ self .assertTrue (a == a2 )
292+ self .assertTrue (a2 == a )
293+ self .assertFalse (a != a2 )
294+ self .assertFalse (a2 != a )
295+
296+ self .assertFalse (a == b )
297+ self .assertFalse (b == a )
298+ self .assertTrue (a != b )
299+ self .assertTrue (b != a )
300+
301+ self .assertFalse (a == c )
302+ self .assertFalse (c == a )
303+ self .assertTrue (a != c )
304+ self .assertTrue (c != a )
305+
306+ self .assertFalse (a == d )
307+ self .assertFalse (d == a )
308+ self .assertTrue (a != d )
309+ self .assertTrue (d != a )
310+
311+ self .assertFalse (a == e )
312+ self .assertFalse (e == a )
313+ self .assertTrue (a != e )
314+ self .assertTrue (e != a )
315+
316+ self .assertFalse (a == l )
317+ self .assertFalse (l == a )
318+ self .assertTrue (a != l )
319+ self .assertTrue (l != a )
320+
321+ def test_equality_base (self ):
322+ a = System .Array .CreateInstance (int , (5 ,), (5 ,))
323+ a2 = System .Array .CreateInstance (int , (5 ,), (5 ,))
324+ b = System .Array .CreateInstance (int , (6 ,), (5 ,))
325+ c = System .Array .CreateInstance (int , (5 ,), (6 ,))
326+ d = System .Array .CreateInstance (int , (6 ,), (6 ,))
327+
328+ self .assertTrue (a == a2 )
329+ self .assertFalse (a == b )
330+ self .assertFalse (a == c )
331+ self .assertFalse (a == d )
332+
333+ self .assertFalse (a != a2 )
334+ self .assertTrue (a != b )
335+ self .assertTrue (a != c )
336+ self .assertTrue (a != d )
337+
338+ def test_equality_rank (self ):
339+ a = System .Array .CreateInstance (int , 5 , 6 )
340+ a2 = System .Array .CreateInstance (int , 5 , 6 )
341+ b = System .Array .CreateInstance (int , 5 , 6 )
342+ b [0 , 0 ] = 1
343+ c = System .Array .CreateInstance (int , (6 , 5 ), (0 , 0 ))
344+ c [0 , 0 ] = 1
345+ d = System .Array .CreateInstance (int , (6 , 5 ), (1 , 1 ))
346+ d [1 , 1 ] = 1
347+ d1 = System .Array .CreateInstance (int , (6 , 5 ), (1 , 1 ))
348+ d1 [1 , 1 ] = 1
349+
350+ self .assertTrue (a == a2 )
351+ self .assertFalse (a == b ) # different element
352+ self .assertFalse (a == c ) # different rank
353+ self .assertFalse (a == d ) # different rank
354+ self .assertFalse (b == c ) # different shape
355+ self .assertFalse (b == d ) # different shape & base
356+ self .assertFalse (c == d ) # different base
357+ self .assertTrue (d == d1 )
358+
359+ self .assertFalse (a != a2 )
360+ self .assertTrue (a != b )
361+ self .assertTrue (a != c )
362+ self .assertTrue (a != d )
363+ self .assertTrue (b != c )
364+ self .assertTrue (b != d )
365+ self .assertTrue (c != d )
366+ self .assertFalse (d != d1 )
367+
282368run_test (__name__ )
0 commit comments