Cython has moved to github.

cython-devel

view tests/run/set.pyx @ 1622:4f0327bdebc9

test for temp allocation bug in call
author Robert Bradshaw <robertwb@math.washington.edu>
date Sat Jan 17 01:25:34 2009 -0800 (3 years ago)
parents 223c184845ea
children fe3d21fc37c3
line source
1 __doc__ = u"""
2 >>> type(test_set_literal()) is _set
3 True
4 >>> sorted(test_set_literal())
5 [u'a', u'b', 1]
7 >>> type(test_set_add()) is _set
8 True
9 >>> sorted(test_set_add())
10 [u'a', 1]
12 >>> type(test_set_list_comp()) is _set
13 True
14 >>> sorted(test_set_list_comp())
15 [0, 1, 2]
17 >>> type(test_set_clear()) is _set
18 True
19 >>> list(test_set_clear())
20 []
22 >>> type(test_set_pop()) is _set
23 True
24 >>> list(test_set_pop())
25 []
27 >>> type(test_set_discard()) is _set
28 True
29 >>> sorted(test_set_discard())
30 [u'12', 233]
31 """
33 import sys
34 if sys.version_info[0] >= 3:
35 __doc__ = __doc__.replace(u"u'", u"'").replace(u'u"', u'"')
37 # Py2.3 doesn't have the 'set' builtin type, but Cython does :)
38 _set = set
40 def test_set_literal():
41 cdef set s1 = {1,u'a',1,u'b',u'a'}
42 return s1
44 def test_set_add():
45 cdef set s1
46 s1 = set([1])
47 s1.add(1)
48 s1.add(u'a')
49 s1.add(1)
50 return s1
52 def test_set_clear():
53 cdef set s1
54 s1 = set([1])
55 s1.clear()
56 return s1
58 def test_set_list_comp():
59 cdef set s1
60 s1 = set([i%3 for i in range(5)])
61 return s1
63 def test_set_pop():
64 cdef set s1
65 s1 = set()
66 s1.add(u'2')
67 two = s1.pop()
68 return s1
70 def test_set_discard():
71 cdef set s1
72 s1 = set()
73 s1.add(u'12')
74 s1.add(3)
75 s1.add(233)
76 s1.discard(u'3')
77 s1.discard(3)
78 return s1
80 def sorted(it):
81 # Py3 can't compare strings to ints
82 chars = []
83 nums = []
84 for item in it:
85 if type(item) is int:
86 nums.append(item)
87 else:
88 chars.append(item)
89 nums.sort()
90 chars.sort()
91 return chars+nums