File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed
com.oracle.graal.python.test/src/tests Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 4040# ankitv 10/10/13
4141# Iterating by Sequence Index
4242
43+ from collections .abc import MutableSet
4344
4445def assert_raises (err , fn , * args , ** kwargs ):
4546 raised = False
@@ -478,3 +479,37 @@ def iterate_and_update(it):
478479
479480 s = {1 , 2 }
480481 assert_raises (RuntimeError , iterate_and_update , s )
482+
483+ # copied and modified test_collections.py#test_issue_4920
484+ # the original will always fail on graalpython due to different set order
485+ def test_MutableSet_pop ():
486+ class MySet (MutableSet ):
487+ __slots__ = ['__s' ]
488+ def __init__ (self ,items = None ):
489+ if items is None :
490+ items = []
491+ self .__s = set (items )
492+ def __contains__ (self ,v ):
493+ return v in self .__s
494+ def __iter__ (self ):
495+ return iter (self .__s )
496+ def __len__ (self ):
497+ return len (self .__s )
498+ def add (self ,v ):
499+ result = v not in self .__s
500+ self .__s .add (v )
501+ return result
502+ def discard (self ,v ):
503+ result = v in self .__s
504+ self .__s .discard (v )
505+ return result
506+ def __repr__ (self ):
507+ return "MySet(%s)" % repr (list (self ))
508+ l = [5 ,43 ]
509+ s = MySet (l )
510+ v1 = s .pop ()
511+ assert v1 in l
512+ v2 = s .pop ()
513+ assert v2 in l
514+ assert v1 != v2
515+ assert len (s ) == 0
Original file line number Diff line number Diff line change @@ -1399,6 +1399,7 @@ def test_issue_5647(self):
13991399 s &= WithSet ('cdef' ) # This used to fail
14001400 self .assertEqual (set (s ), set ('cd' ))
14011401
1402+ @support .impl_detail ("relies on element order in a set" , graalvm = False )
14021403 def test_issue_4920 (self ):
14031404 # MutableSet.pop() method did not work
14041405 class MySet (MutableSet ):
You can’t perform that action at this time.
0 commit comments