def test_clear(self): c = cache.LinkedSet() c.append_top(1) c.append_top(2) self.assertEqual(len(c), 2) c.clear() self.assertEqual(len(c), 0) self.assertEqual(list(c), []) c.clear()
def test_clear(self): c = cache.LinkedSet() c.append_top(1) c.append_top(2) assert len(c) == 2 c.clear() assert len(c) == 0 assert list(c) == [] c.clear()
def test_append_bottom(self): c = cache.LinkedSet() c.append_bottom(1) self.assertEqual(len(c), 1) self.assertEqual(list(c), [1]) c.append_bottom(2) self.assertEqual(len(c), 2) self.assertEqual(list(c), [1, 2]) c.append_bottom(3) self.assertEqual(len(c), 3) self.assertEqual(list(c), [1, 2, 3]) self.assertTrue(self.link_consistency(c)) self.assertRaises(KeyError, c.append_top, 2)
def test_append_bottom(self): c = cache.LinkedSet() c.append_bottom(1) assert len(c) == 1 assert list(c) == [1] c.append_bottom(2) assert len(c) == 2 assert list(c) == [1, 2] c.append_bottom(3) assert len(c) == 3 assert list(c) == [1, 2, 3] assert self.link_consistency(c) with pytest.raises(KeyError): c.append_top(2)
def test_move_to_bottom(self): c = cache.LinkedSet() c.append_top(1) c.move_to_bottom(1) self.assertEqual(list(c), [1]) c.append_bottom(2) c.move_to_bottom(2) self.assertEqual(list(c), [1, 2]) c.move_to_bottom(1) self.assertEqual(list(c), [2, 1]) c.append_top(3) c.move_to_bottom(1) self.assertEqual(list(c), [3, 2, 1]) self.assertTrue(self.link_consistency(c))
def test_move_to_bottom(self): c = cache.LinkedSet() c.append_top(1) c.move_to_bottom(1) assert list(c) == [1] c.append_bottom(2) c.move_to_bottom(2) assert list(c) == [1, 2] c.move_to_bottom(1) assert list(c) == [2, 1] c.append_top(3) c.move_to_bottom(1) assert list(c) == [3, 2, 1] assert self.link_consistency(c)
def test_pop_bottom(self): c = cache.LinkedSet([1, 2, 3]) evicted = c.pop_bottom() assert evicted == 3 assert list(c) == [1, 2] assert self.link_consistency(c) evicted = c.pop_bottom() assert evicted == 2 assert list(c) == [1] assert self.link_consistency(c) evicted = c.pop_bottom() assert evicted == 1 assert list(c) == [] evicted = c.pop_bottom() assert evicted is None assert list(c) == []
def test_pop_top(self): c = cache.LinkedSet([1, 2, 3]) evicted = c.pop_top() assert evicted == 1 assert list(c) == [2, 3] assert self.link_consistency(c) evicted = c.pop_top() assert evicted == 2 assert list(c) == [3] assert self.link_consistency(c) evicted = c.pop_top() assert evicted == 3 assert list(c) == [] evicted = c.pop_top() assert evicted == None assert list(c) == []
def test_pop_bottom(self): c = cache.LinkedSet([1, 2, 3]) evicted = c.pop_bottom() self.assertEqual(evicted, 3) self.assertEqual(list(c), [1, 2]) self.assertTrue(self.link_consistency(c)) evicted = c.pop_bottom() self.assertEqual(evicted, 2) self.assertEqual(list(c), [1]) self.assertTrue(self.link_consistency(c)) evicted = c.pop_bottom() self.assertEqual(evicted, 1) self.assertEqual(list(c), []) evicted = c.pop_bottom() self.assertEqual(evicted, None) self.assertEqual(list(c), [])
def test_move_up(self): c = cache.LinkedSet() c.append_bottom(1) c.move_up(1) self.assertEqual(list(c), [1]) c.append_bottom(2) c.move_up(1) self.assertEqual(list(c), [1, 2]) c.move_up(2) self.assertEqual(list(c), [2, 1]) c.append_bottom(3) c.move_up(3) self.assertEqual(list(c), [2, 3, 1]) c.move_up(3) self.assertEqual(list(c), [3, 2, 1]) self.assertTrue(self.link_consistency(c)) self.assertRaises(KeyError, c.move_up, 4)
def test_insert_below(self): c = cache.LinkedSet([1]) c.insert_below(1, 2) assert list(c) == [1, 2] assert self.link_consistency(c) c.insert_below(2, 3) assert list(c) == [1, 2, 3] assert self.link_consistency(c) c.insert_below(1, 'a') assert list(c) == [1, 'a', 2, 3] assert self.link_consistency(c) c.insert_below(2, 'b') assert list(c) == [1, 'a', 2, 'b', 3] assert self.link_consistency(c) c.insert_below(3, 'c') assert list(c) == [1, 'a', 2, 'b', 3, 'c'] assert self.link_consistency(c)
def test_insert_above(self): c = cache.LinkedSet([3]) c.insert_above(3, 2) assert list(c) == [2, 3] assert self.link_consistency(c) c.insert_above(2, 1) assert list(c) == [1, 2, 3] assert self.link_consistency(c) c.insert_above(1, "a") assert list(c) == ["a", 1, 2, 3] assert self.link_consistency(c) c.insert_above(2, "b") assert list(c) == ["a", 1, "b", 2, 3] assert self.link_consistency(c) c.insert_above(3, "c") assert list(c) == ["a", 1, "b", 2, "c", 3] assert self.link_consistency(c)
def test_insert_below(self): c = cache.LinkedSet([1]) c.insert_below(1, 2) self.assertEqual(list(c), [1, 2]) self.assertTrue(self.link_consistency(c)) c.insert_below(2, 3) self.assertEqual(list(c), [1, 2, 3]) self.assertTrue(self.link_consistency(c)) c.insert_below(1, 'a') self.assertEqual(list(c), [1, 'a', 2, 3]) self.assertTrue(self.link_consistency(c)) c.insert_below(2, 'b') self.assertEqual(list(c), [1, 'a', 2, 'b', 3]) self.assertTrue(self.link_consistency(c)) c.insert_below(3, 'c') self.assertEqual(list(c), [1, 'a', 2, 'b', 3, 'c']) self.assertTrue(self.link_consistency(c))
def test_insert_above(self): c = cache.LinkedSet([3]) c.insert_above(3, 2) self.assertEqual(list(c), [2, 3]) self.assertTrue(self.link_consistency(c)) c.insert_above(2, 1) self.assertEqual(list(c), [1, 2, 3]) self.assertTrue(self.link_consistency(c)) c.insert_above(1, 'a') self.assertEqual(list(c), ['a', 1, 2, 3]) self.assertTrue(self.link_consistency(c)) c.insert_above(2, 'b') self.assertEqual(list(c), ['a', 1, 'b', 2, 3]) self.assertTrue(self.link_consistency(c)) c.insert_above(3, 'c') self.assertEqual(list(c), ['a', 1, 'b', 2, 'c', 3]) self.assertTrue(self.link_consistency(c))
def test_insert_above(self): c = cache.LinkedSet([3]) c.insert_above(3, 2) assert list(c) == [2, 3] assert self.link_consistency(c) c.insert_above(2, 1) assert list(c) == [1, 2, 3] assert self.link_consistency(c) c.insert_above(1, 'a') assert list(c) == ['a', 1, 2, 3] assert self.link_consistency(c) c.insert_above(2, 'b') assert list(c) == ['a', 1, 'b', 2, 3] assert self.link_consistency(c) c.insert_above(3, 'c') assert list(c) == ['a', 1, 'b', 2, 'c', 3] assert self.link_consistency(c)
def test_insert_below(self): c = cache.LinkedSet([1]) c.insert_below(1, 2) assert list(c) == [1, 2] assert self.link_consistency(c) c.insert_below(2, 3) assert list(c) == [1, 2, 3] assert self.link_consistency(c) c.insert_below(1, "a") assert list(c) == [1, "a", 2, 3] assert self.link_consistency(c) c.insert_below(2, "b") assert list(c) == [1, "a", 2, "b", 3] assert self.link_consistency(c) c.insert_below(3, "c") assert list(c) == [1, "a", 2, "b", 3, "c"] assert self.link_consistency(c)
def test_move_up(self): c = cache.LinkedSet() c.append_bottom(1) c.move_up(1) assert list(c) == [1] c.append_bottom(2) c.move_up(1) assert list(c) == [1, 2] c.move_up(2) assert list(c) == [2, 1] c.append_bottom(3) c.move_up(3) assert list(c) == [2, 3, 1] c.move_up(3) assert list(c) == [3, 2, 1] assert self.link_consistency(c) with pytest.raises(KeyError): c.move_up(4)
def test_move_down(self): c = cache.LinkedSet() c.append_top(1) c.move_down(1) self.assertEqual(list(c), [1]) c.append_top(2) c.move_down(1) self.assertEqual(list(c), [2, 1]) c.move_down(2) self.assertEqual(list(c), [1, 2]) c.move_down(2) self.assertEqual(list(c), [1, 2]) c.append_top(3) self.assertEqual(list(c), [3, 1, 2]) c.move_down(3) self.assertEqual(list(c), [1, 3, 2]) c.move_down(3) self.assertEqual(list(c), [1, 2, 3]) self.assertTrue(self.link_consistency(c)) self.assertRaises(KeyError, c.move_down, 4)
def test_move_down(self): c = cache.LinkedSet() c.append_top(1) c.move_down(1) assert list(c) == [1] c.append_top(2) c.move_down(1) assert list(c) == [2, 1] c.move_down(2) assert list(c) == [1, 2] c.move_down(2) assert list(c) == [1, 2] c.append_top(3) assert list(c) == [3, 1, 2] c.move_down(3) assert list(c) == [1, 3, 2] c.move_down(3) assert list(c) == [1, 2, 3] assert self.link_consistency(c) with pytest.raises(KeyError): c.move_down(4)
def test_duplicated_elements(self): self.assertRaises(ValueError, cache.LinkedSet, iterable=[1, 1, 2]) self.assertRaises(ValueError, cache.LinkedSet, iterable=[1, None, None]) self.assertIsNotNone(cache.LinkedSet(iterable=[1, 0, None]))
def test_duplicated_elements(self): with pytest.raises(ValueError): cache.LinkedSet(iterable=[1, 1, 2]) cache.LinkedSet(iterable=[1, None, None]) assert cache.LinkedSet(iterable=[1, 0, None]) is not None