@@ -1309,20 +1309,29 @@ def test_issue26915(self):
13091309 class CustomEqualObject :
13101310 def __eq__ (self , other ):
13111311 return False
1312- class CustomSequence (list ):
1313- def __contains__ (self , value ):
1314- return Sequence .__contains__ (self , value )
1312+ class CustomSequence (Sequence ):
1313+ def __init__ (self , seq ):
1314+ self ._seq = seq
1315+ def __getitem__ (self , index ):
1316+ return self ._seq [index ]
1317+ def __len__ (self ):
1318+ return len (self ._seq )
13151319
13161320 nan = float ('nan' )
13171321 obj = CustomEqualObject ()
1322+ seq = CustomSequence ([nan , obj , nan ])
13181323 containers = [
1319- CustomSequence ([ nan , obj ]) ,
1324+ seq ,
13201325 ItemsView ({1 : nan , 2 : obj }),
13211326 ValuesView ({1 : nan , 2 : obj })
13221327 ]
13231328 for container in containers :
13241329 for elem in container :
13251330 self .assertIn (elem , container )
1331+ self .assertEqual (seq .index (nan ), 0 )
1332+ self .assertEqual (seq .index (obj ), 1 )
1333+ self .assertEqual (seq .count (nan ), 2 )
1334+ self .assertEqual (seq .count (obj ), 1 )
13261335
13271336 def assertSameSet (self , s1 , s2 ):
13281337 # coerce both to a real set then check equality
0 commit comments