def test_supports_indexing(self):
     numbers = CyclicList([1, 2, 3, 4])
     self.assertEqual(numbers[2], 3)
     numbers = CyclicList([1, 2, 3, 4])
     self.assertEqual(numbers[4], 1)
     self.assertEqual(numbers[-1], 4)
     numbers[5] = 0  # Should update index 1 (since the list has 4 items)
     self.assertEqual(numbers[1], 0)
Exemple #2
0
 def test_supports_indexing(self):
     numbers = CyclicList([1, 2, 3, 4])
     self.assertEqual(numbers[2], 3)
     numbers = CyclicList([1, 2, 3, 4])
     self.assertEqual(numbers[4], 1)
     self.assertEqual(numbers[-1], 4)
     numbers[5] = 0
     self.assertEqual(numbers[1], 0)
Exemple #3
0
 def test_slice(self):
     numbers = CyclicList([1, 2, 3, 4, 5])
     self.assertEqual(numbers[:7], [1, 2, 3, 4, 5, 1, 2])
     self.assertEqual(numbers[-3:], [3, 4, 5])
     self.assertEqual(numbers[-10:0], [1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
     self.assertEqual(numbers[-1:9], [5, 1, 2, 3, 4, 5, 1, 2, 3, 4])
     self.assertEqual(numbers[:], [1, 2, 3, 4, 5])
Exemple #4
0
 def test_iterators_are_independent(self):
     numbers = CyclicList([1, 2, 3, 4])
     i1 = iter(numbers)
     i2 = iter(numbers)
     self.assertEqual(next(i1), 1)
     self.assertEqual(next(i1), 2)
     self.assertEqual(next(i2), 1)
     self.assertEqual(next(i2), 2)
Exemple #5
0
 def test_constructor(self):
     CyclicList([1, 2, 3, 4])
Exemple #6
0
 def test_length_append_and_pop(self):
     numbers = CyclicList([1, 2, 3])
     self.assertEqual(len(numbers), 3)
     numbers.append(4)
     self.assertEqual(numbers.pop(), 4)
     self.assertEqual(numbers.pop(0), 1)
Exemple #7
0
 def test_iterate_past_length(self):
     numbers = CyclicList([1, 2, 3])
     new_list = [x for x, _ in zip(numbers, range(10))]
     self.assertEqual(new_list, [1, 2, 3, 1, 2, 3, 1, 2, 3, 1])
Exemple #8
0
 def test_iterate_to_length(self):
     numbers = CyclicList([1, 2, 3])
     i = iter(numbers)
     self.assertEqual([next(i), next(i), next(i)], [1, 2, 3])
Exemple #9
0
 def test_accepts_non_lists(self):
     numbers = CyclicList({1, 2, 3})
     self.assertEqual(next(iter(numbers)), 1)
     letters = CyclicList('hello')
     self.assertEqual(next(iter(letters)), 'h')