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 40
40
# ankitv 10/10/13
41
41
# Iterating by Sequence Index
42
42
43
+ from collections .abc import MutableSet
43
44
44
45
def assert_raises (err , fn , * args , ** kwargs ):
45
46
raised = False
@@ -478,3 +479,37 @@ def iterate_and_update(it):
478
479
479
480
s = {1 , 2 }
480
481
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):
1399
1399
s &= WithSet ('cdef' ) # This used to fail
1400
1400
self .assertEqual (set (s ), set ('cd' ))
1401
1401
1402
+ @support .impl_detail ("relies on element order in a set" , graalvm = False )
1402
1403
def test_issue_4920 (self ):
1403
1404
# MutableSet.pop() method did not work
1404
1405
class MySet (MutableSet ):
You can’t perform that action at this time.
0 commit comments