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