Cython has moved to github.
cython-devel
view tests/run/set.pyx @ 1478:b638811d14d0
implement set/dict comprehensions and set literals
| author | Stefan Behnel <scoder@users.berlios.de> |
|---|---|
| date | Fri Dec 12 09:21:10 2008 +0100 (3 years ago) |
| parents | ea91c6d40b4d |
| children | 421a3edf1abf |
line source
1 u"""
2 >>> type(test_set_literal()) is _set
3 True
4 >>> sorted(test_set_literal())
5 ['a', 'b', 1]
7 >>> type(test_set_add()) is _set
8 True
9 >>> sorted(test_set_add())
10 ['a', 1]
12 >>> type(test_set_add()) is _set
13 True
14 >>> list(test_set_clear())
15 []
17 >>> type(test_set_pop()) is _set
18 True
19 >>> list(test_set_pop())
20 []
22 >>> type(test_set_discard()) is _set
23 True
24 >>> sorted(test_set_discard())
25 ['12', 233]
26 """
28 # Py2.3 doesn't have the 'set' builtin type, but Cython does :)
29 _set = set
31 def test_set_literal():
32 cdef set s1 = {1,'a',1,'b','a'}
33 return s1
35 def test_set_add():
36 cdef set s1
37 s1 = set([1])
38 s1.add(1)
39 s1.add('a')
40 s1.add(1)
41 return s1
43 def test_set_clear():
44 cdef set s1
45 s1 = set([1])
46 s1.clear()
47 return s1
49 def test_set_pop():
50 cdef set s1
51 s1 = set()
52 s1.add('2')
53 two = s1.pop()
54 return s1
56 def test_set_discard():
57 cdef set s1
58 s1 = set()
59 s1.add('12')
60 s1.add(3)
61 s1.add(233)
62 s1.discard('3')
63 s1.discard(3)
64 return s1
66 def sorted(it):
67 # Py3 can't compare strings to ints
68 chars = []
69 nums = []
70 for item in it:
71 if type(item) is int:
72 nums.append(item)
73 else:
74 chars.append(item)
75 nums.sort()
76 chars.sort()
77 return chars+nums
