source: vendor/current/lib/dnspython/tests/set.py@ 740

Last change on this file since 740 was 740, checked in by Silvan Scherrer, 12 years ago

Samba Server: update vendor to 3.6.0

File size: 5.3 KB
Line 
1# Copyright (C) 2003-2007, 2009, 2010 Nominum, Inc.
2#
3# Permission to use, copy, modify, and distribute this software and its
4# documentation for any purpose with or without fee is hereby granted,
5# provided that the above copyright notice and this permission notice
6# appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
14# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
16import unittest
17
18import dns.set
19
20# for convenience
21S = dns.set.Set
22
23class SimpleSetTestCase(unittest.TestCase):
24
25 def testLen1(self):
26 s1 = S()
27 self.failUnless(len(s1) == 0)
28
29 def testLen2(self):
30 s1 = S([1, 2, 3])
31 self.failUnless(len(s1) == 3)
32
33 def testLen3(self):
34 s1 = S([1, 2, 3, 3, 3])
35 self.failUnless(len(s1) == 3)
36
37 def testUnion1(self):
38 s1 = S([1, 2, 3])
39 s2 = S([1, 2, 3])
40 e = S([1, 2, 3])
41 self.failUnless(s1 | s2 == e)
42
43 def testUnion2(self):
44 s1 = S([1, 2, 3])
45 s2 = S([])
46 e = S([1, 2, 3])
47 self.failUnless(s1 | s2 == e)
48
49 def testUnion3(self):
50 s1 = S([1, 2, 3])
51 s2 = S([3, 4])
52 e = S([1, 2, 3, 4])
53 self.failUnless(s1 | s2 == e)
54
55 def testIntersection1(self):
56 s1 = S([1, 2, 3])
57 s2 = S([1, 2, 3])
58 e = S([1, 2, 3])
59 self.failUnless(s1 & s2 == e)
60
61 def testIntersection2(self):
62 s1 = S([0, 1, 2, 3])
63 s2 = S([1, 2, 3, 4])
64 e = S([1, 2, 3])
65 self.failUnless(s1 & s2 == e)
66
67 def testIntersection3(self):
68 s1 = S([1, 2, 3])
69 s2 = S([])
70 e = S([])
71 self.failUnless(s1 & s2 == e)
72
73 def testIntersection4(self):
74 s1 = S([1, 2, 3])
75 s2 = S([5, 4])
76 e = S([])
77 self.failUnless(s1 & s2 == e)
78
79 def testDifference1(self):
80 s1 = S([1, 2, 3])
81 s2 = S([5, 4])
82 e = S([1, 2, 3])
83 self.failUnless(s1 - s2 == e)
84
85 def testDifference2(self):
86 s1 = S([1, 2, 3])
87 s2 = S([])
88 e = S([1, 2, 3])
89 self.failUnless(s1 - s2 == e)
90
91 def testDifference3(self):
92 s1 = S([1, 2, 3])
93 s2 = S([3, 2])
94 e = S([1])
95 self.failUnless(s1 - s2 == e)
96
97 def testDifference4(self):
98 s1 = S([1, 2, 3])
99 s2 = S([3, 2, 1])
100 e = S([])
101 self.failUnless(s1 - s2 == e)
102
103 def testSubset1(self):
104 s1 = S([1, 2, 3])
105 s2 = S([3, 2, 1])
106 self.failUnless(s1.issubset(s2))
107
108 def testSubset2(self):
109 s1 = S([1, 2, 3])
110 self.failUnless(s1.issubset(s1))
111
112 def testSubset3(self):
113 s1 = S([])
114 s2 = S([1, 2, 3])
115 self.failUnless(s1.issubset(s2))
116
117 def testSubset4(self):
118 s1 = S([1])
119 s2 = S([1, 2, 3])
120 self.failUnless(s1.issubset(s2))
121
122 def testSubset5(self):
123 s1 = S([])
124 s2 = S([])
125 self.failUnless(s1.issubset(s2))
126
127 def testSubset6(self):
128 s1 = S([1, 4])
129 s2 = S([1, 2, 3])
130 self.failUnless(not s1.issubset(s2))
131
132 def testSuperset1(self):
133 s1 = S([1, 2, 3])
134 s2 = S([3, 2, 1])
135 self.failUnless(s1.issuperset(s2))
136
137 def testSuperset2(self):
138 s1 = S([1, 2, 3])
139 self.failUnless(s1.issuperset(s1))
140
141 def testSuperset3(self):
142 s1 = S([1, 2, 3])
143 s2 = S([])
144 self.failUnless(s1.issuperset(s2))
145
146 def testSuperset4(self):
147 s1 = S([1, 2, 3])
148 s2 = S([1])
149 self.failUnless(s1.issuperset(s2))
150
151 def testSuperset5(self):
152 s1 = S([])
153 s2 = S([])
154 self.failUnless(s1.issuperset(s2))
155
156 def testSuperset6(self):
157 s1 = S([1, 2, 3])
158 s2 = S([1, 4])
159 self.failUnless(not s1.issuperset(s2))
160
161 def testUpdate1(self):
162 s1 = S([1, 2, 3])
163 u = (4, 5, 6)
164 e = S([1, 2, 3, 4, 5, 6])
165 s1.update(u)
166 self.failUnless(s1 == e)
167
168 def testUpdate2(self):
169 s1 = S([1, 2, 3])
170 u = []
171 e = S([1, 2, 3])
172 s1.update(u)
173 self.failUnless(s1 == e)
174
175 def testGetitem(self):
176 s1 = S([1, 2, 3])
177 i0 = s1[0]
178 i1 = s1[1]
179 i2 = s1[2]
180 s2 = S([i0, i1, i2])
181 self.failUnless(s1 == s2)
182
183 def testGetslice(self):
184 s1 = S([1, 2, 3])
185 slice = s1[0:2]
186 self.failUnless(len(slice) == 2)
187 item = s1[2]
188 slice.append(item)
189 s2 = S(slice)
190 self.failUnless(s1 == s2)
191
192 def testDelitem(self):
193 s1 = S([1, 2, 3])
194 del s1[0]
195 i1 = s1[0]
196 i2 = s1[1]
197 self.failUnless(i1 != i2)
198 self.failUnless(i1 == 1 or i1 == 2 or i1 == 3)
199 self.failUnless(i2 == 1 or i2 == 2 or i2 == 3)
200
201 def testDelslice(self):
202 s1 = S([1, 2, 3])
203 del s1[0:2]
204 i1 = s1[0]
205 self.failUnless(i1 == 1 or i1 == 2 or i1 == 3)
206
207if __name__ == '__main__':
208 unittest.main()
Note: See TracBrowser for help on using the repository browser.