Lines Matching refs:self
12 def __init__(self, start, stop):
13 self.start = start
14 self.stop = stop
15 self.last_insert = None
17 def __len__(self):
18 return self.stop - self.start
20 def __getitem__(self, idx):
21 n = self.stop - self.start
26 return self.start + idx
28 def insert(self, idx, item):
29 self.last_insert = idx, item
33 def setUp(self):
34 self.precomputedCases = [
35 (self.module.bisect_right, [], 1, 0),
36 (self.module.bisect_right, [1], 0, 0),
37 (self.module.bisect_right, [1], 1, 1),
38 (self.module.bisect_right, [1], 2, 1),
39 (self.module.bisect_right, [1, 1], 0, 0),
40 (self.module.bisect_right, [1, 1], 1, 2),
41 (self.module.bisect_right, [1, 1], 2, 2),
42 (self.module.bisect_right, [1, 1, 1], 0, 0),
43 (self.module.bisect_right, [1, 1, 1], 1, 3),
44 (self.module.bisect_right, [1, 1, 1], 2, 3),
45 (self.module.bisect_right, [1, 1, 1, 1], 0, 0),
46 (self.module.bisect_right, [1, 1, 1, 1], 1, 4),
47 (self.module.bisect_right, [1, 1, 1, 1], 2, 4),
48 (self.module.bisect_right, [1, 2], 0, 0),
49 (self.module.bisect_right, [1, 2], 1, 1),
50 (self.module.bisect_right, [1, 2], 1.5, 1),
51 (self.module.bisect_right, [1, 2], 2, 2),
52 (self.module.bisect_right, [1, 2], 3, 2),
53 (self.module.bisect_right, [1, 1, 2, 2], 0, 0),
54 (self.module.bisect_right, [1, 1, 2, 2], 1, 2),
55 (self.module.bisect_right, [1, 1, 2, 2], 1.5, 2),
56 (self.module.bisect_right, [1, 1, 2, 2], 2, 4),
57 (self.module.bisect_right, [1, 1, 2, 2], 3, 4),
58 (self.module.bisect_right, [1, 2, 3], 0, 0),
59 (self.module.bisect_right, [1, 2, 3], 1, 1),
60 (self.module.bisect_right, [1, 2, 3], 1.5, 1),
61 (self.module.bisect_right, [1, 2, 3], 2, 2),
62 (self.module.bisect_right, [1, 2, 3], 2.5, 2),
63 (self.module.bisect_right, [1, 2, 3], 3, 3),
64 (self.module.bisect_right, [1, 2, 3], 4, 3),
65 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 0, 0),
66 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1, 1),
67 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1.5, 1),
68 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2, 3),
69 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2.5, 3),
70 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3, 6),
71 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3.5, 6),
72 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 4, 10),
73 (self.module.bisect_right, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 5, 10),
75 (self.module.bisect_left, [], 1, 0),
76 (self.module.bisect_left, [1], 0, 0),
77 (self.module.bisect_left, [1], 1, 0),
78 (self.module.bisect_left, [1], 2, 1),
79 (self.module.bisect_left, [1, 1], 0, 0),
80 (self.module.bisect_left, [1, 1], 1, 0),
81 (self.module.bisect_left, [1, 1], 2, 2),
82 (self.module.bisect_left, [1, 1, 1], 0, 0),
83 (self.module.bisect_left, [1, 1, 1], 1, 0),
84 (self.module.bisect_left, [1, 1, 1], 2, 3),
85 (self.module.bisect_left, [1, 1, 1, 1], 0, 0),
86 (self.module.bisect_left, [1, 1, 1, 1], 1, 0),
87 (self.module.bisect_left, [1, 1, 1, 1], 2, 4),
88 (self.module.bisect_left, [1, 2], 0, 0),
89 (self.module.bisect_left, [1, 2], 1, 0),
90 (self.module.bisect_left, [1, 2], 1.5, 1),
91 (self.module.bisect_left, [1, 2], 2, 1),
92 (self.module.bisect_left, [1, 2], 3, 2),
93 (self.module.bisect_left, [1, 1, 2, 2], 0, 0),
94 (self.module.bisect_left, [1, 1, 2, 2], 1, 0),
95 (self.module.bisect_left, [1, 1, 2, 2], 1.5, 2),
96 (self.module.bisect_left, [1, 1, 2, 2], 2, 2),
97 (self.module.bisect_left, [1, 1, 2, 2], 3, 4),
98 (self.module.bisect_left, [1, 2, 3], 0, 0),
99 (self.module.bisect_left, [1, 2, 3], 1, 0),
100 (self.module.bisect_left, [1, 2, 3], 1.5, 1),
101 (self.module.bisect_left, [1, 2, 3], 2, 1),
102 (self.module.bisect_left, [1, 2, 3], 2.5, 2),
103 (self.module.bisect_left, [1, 2, 3], 3, 2),
104 (self.module.bisect_left, [1, 2, 3], 4, 3),
105 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 0, 0),
106 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1, 0),
107 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 1.5, 1),
108 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2, 1),
109 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 2.5, 3),
110 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3, 3),
111 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 3.5, 6),
112 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 4, 6),
113 (self.module.bisect_left, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 5, 10)
116 def test_precomputed(self):
117 for func, data, elem, expected in self.precomputedCases:
118 self.assertEqual(func(data, elem), expected)
119 self.assertEqual(func(UserList(data), elem), expected)
121 def test_negative_lo(self):
123 mod = self.module
124 self.assertRaises(ValueError, mod.bisect_left, [1, 2, 3], 5, -1, 3)
125 self.assertRaises(ValueError, mod.bisect_right, [1, 2, 3], 5, -1, 3)
126 self.assertRaises(ValueError, mod.insort_left, [1, 2, 3], 5, -1, 3)
127 self.assertRaises(ValueError, mod.insort_right, [1, 2, 3], 5, -1, 3)
129 def test_large_range(self):
131 mod = self.module
134 self.assertEqual(mod.bisect_left(data, n-3), n-3)
135 self.assertEqual(mod.bisect_right(data, n-3), n-2)
136 self.assertEqual(mod.bisect_left(data, n-3, n-10, n), n-3)
137 self.assertEqual(mod.bisect_right(data, n-3, n-10, n), n-2)
139 def test_large_pyrange(self):
141 mod = self.module
144 self.assertEqual(mod.bisect_left(data, n-3), n-3)
145 self.assertEqual(mod.bisect_right(data, n-3), n-2)
146 self.assertEqual(mod.bisect_left(data, n-3, n-10, n), n-3)
147 self.assertEqual(mod.bisect_right(data, n-3, n-10, n), n-2)
150 self.assertEqual(data.last_insert, (x, x))
153 self.assertEqual(data.last_insert, (x + 1, x))
155 def test_random(self, n=25):
161 ip = self.module.bisect_left(data, elem)
163 self.assertTrue(elem <= data[ip])
165 self.assertTrue(data[ip-1] < elem)
166 ip = self.module.bisect_right(data, elem)
168 self.assertTrue(elem < data[ip])
170 self.assertTrue(data[ip-1] <= elem)
172 def test_optionalSlicing(self):
173 for func, data, elem, expected in self.precomputedCases:
179 self.assertTrue(lo <= ip <= hi)
180 if func is self.module.bisect_left and ip < hi:
181 self.assertTrue(elem <= data[ip])
182 if func is self.module.bisect_left and ip > lo:
183 self.assertTrue(data[ip-1] < elem)
184 if func is self.module.bisect_right and ip < hi:
185 self.assertTrue(elem < data[ip])
186 if func is self.module.bisect_right and ip > lo:
187 self.assertTrue(data[ip-1] <= elem)
188 self.assertEqual(ip, max(lo, min(hi, expected)))
190 def test_backcompatibility(self):
191 self.assertEqual(self.module.bisect, self.module.bisect_right)
193 def test_keyword_args(self):
195 self.assertEqual(self.module.bisect_left(a=data, x=25, lo=1, hi=3), 2)
196 self.assertEqual(self.module.bisect_right(a=data, x=25, lo=1, hi=3), 2)
197 self.assertEqual(self.module.bisect(a=data, x=25, lo=1, hi=3), 2)
198 self.module.insort_left(a=data, x=25, lo=1, hi=3)
199 self.module.insort_right(a=data, x=25, lo=1, hi=3)
200 self.module.insort(a=data, x=25, lo=1, hi=3)
201 self.assertEqual(data, [10, 20, 25, 25, 25, 30, 40, 50])
203 def test_lookups_with_key_function(self):
204 mod = self.module
214 self.assertEqual(
218 self.assertEqual(
227 self.assertEqual(
231 self.assertEqual(
236 def test_insort(self):
238 mod = self.module
248 self.assertEqual(
255 self.assertEqual(
260 def test_insort_keynotNone(self):
263 for f in (self.module.insort_left, self.module.insort_right):
264 self.assertRaises(TypeError, f, x, y, key = "b")
275 def test_vsBuiltinSort(self, n=500):
281 f = self.module.insort_left
283 f = self.module.insort_right
285 self.assertEqual(sorted(insorted), insorted)
287 def test_backcompatibility(self):
288 self.assertEqual(self.module.insort, self.module.insort_right)
290 def test_listDerived(self):
293 def insert(self, index, item):
294 self.data.insert(index, item)
297 self.module.insort_left(lst, 10)
298 self.module.insort_right(lst, 5)
299 self.assertEqual([5, 10], lst.data)
311 def __len__(self):
316 def __getitem__(self, ndx):
321 def __lt__(self, other):
330 def test_non_sequence(self):
331 for f in (self.module.bisect_left, self.module.bisect_right,
332 self.module.insort_left, self.module.insort_right):
333 self.assertRaises(TypeError, f, 10, 10)
335 def test_len_only(self):
336 for f in (self.module.bisect_left, self.module.bisect_right,
337 self.module.insort_left, self.module.insort_right):
338 self.assertRaises(TypeError, f, LenOnly(), 10)
340 def test_get_only(self):
341 for f in (self.module.bisect_left, self.module.bisect_right,
342 self.module.insort_left, self.module.insort_right):
343 self.assertRaises(TypeError, f, GetOnly(), 10)
345 def test_cmp_err(self):
347 for f in (self.module.bisect_left, self.module.bisect_right,
348 self.module.insort_left, self.module.insort_right):
349 self.assertRaises(ZeroDivisionError, f, seq, 10)
351 def test_arg_parsing(self):
352 for f in (self.module.bisect_left, self.module.bisect_right,
353 self.module.insort_left, self.module.insort_right):
354 self.assertRaises(TypeError, f, 10)
365 def test_grades(self):
367 i = self.module.bisect(breakpoints, score)
371 self.assertEqual(result, ['F', 'A', 'C', 'C', 'B', 'A', 'A'])
373 def test_colors(self):
377 bisect_left = self.module.bisect_left
378 self.assertEqual(data[bisect_left(keys, 0)], ('black', 0))
379 self.assertEqual(data[bisect_left(keys, 1)], ('blue', 1))
380 self.assertEqual(data[bisect_left(keys, 5)], ('red', 5))
381 self.assertEqual(data[bisect_left(keys, 8)], ('yellow', 8))