Esempio n. 1
0
 def test_concat(self):
     a_ref = range(0, 1024, 4)
     a = dllist(a_ref)
     b_ref = range(8092, 8092 + 1024, 4)
     b = dllist(b_ref)
     ab_ref = dllist(a_ref + b_ref)
     c = a + b
     self.assertEqual(c, ab_ref)
     self.assertEqual(len(c), len(ab_ref))
     c = a + b_ref
     self.assertEqual(c, ab_ref)
     self.assertEqual(len(c), len(ab_ref))
Esempio n. 2
0
 def test_concat(self):
     a_ref = range(0, 1024, 4)
     a = dllist(a_ref)
     b_ref = range(8092, 8092 + 1024, 4)
     b = dllist(b_ref)
     ab_ref = dllist(a_ref + b_ref)
     c = a + b
     self.assertEqual(c, ab_ref)
     self.assertEqual(len(c), len(ab_ref))
     c = a + b_ref
     self.assertEqual(c, ab_ref)
     self.assertEqual(len(c), len(ab_ref))
Esempio n. 3
0
 def test_concat_inplace(self):
     a_ref = range(0, 1024, 4)
     b_ref = range(8092, 8092 + 1024, 4)
     b = dllist(b_ref)
     ab_ref = dllist(a_ref + b_ref)
     a = dllist(a_ref)
     a += b
     self.assertEqual(a, ab_ref)
     self.assertEqual(len(a), len(ab_ref))
     a = dllist(a_ref)
     a += b_ref
     self.assertEqual(a, ab_ref)
     self.assertEqual(len(a), len(ab_ref))
     a = dllist(a_ref)
     a += a
     self.assertEqual(a, dllist(a_ref + a_ref))
     self.assertEqual(len(a), len(ab_ref))
Esempio n. 4
0
 def test_concat_inplace(self):
     a_ref = range(0, 1024, 4)
     b_ref = range(8092, 8092 + 1024, 4)
     b = dllist(b_ref)
     ab_ref = dllist(a_ref + b_ref)
     a = dllist(a_ref)
     a += b
     self.assertEqual(a, ab_ref)
     self.assertEqual(len(a), len(ab_ref))
     a = dllist(a_ref)
     a += b_ref
     self.assertEqual(a, ab_ref)
     self.assertEqual(len(a), len(ab_ref))
     a = dllist(a_ref)
     a += a
     self.assertEqual(a, dllist(a_ref + a_ref))
     self.assertEqual(len(a), len(ab_ref))
Esempio n. 5
0
 def test_iter(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     idx = 0
     for val in ll:
         self.assertFalse(isinstance(val, sllistnode))
         self.assertEqual(val, ref[idx])
         idx += 1
     self.assertEqual(idx, len(ref))
Esempio n. 6
0
 def test_iternodes(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     idx = 0
     for node in ll.iternodes():
         self.assertTrue(isinstance(node, sllistnode))
         self.assertEqual(node.value, ref[idx])
         idx += 1
     self.assertEqual(idx, len(ref))
Esempio n. 7
0
 def test_reversed(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     idx = len(ref) - 1
     for val in reversed(ll):
         self.assertFalse(isinstance(val, sllistnode))
         self.assertEqual(val, ref[idx])
         idx -= 1
     self.assertEqual(idx, -1)
Esempio n. 8
0
 def test_popleft(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     result = ll.popleft()
     self.assertEqual(result, ref[0])
     self.assertEqual(len(ll), len(ref) - 1)
     self.assertEqual(ll.size, len(ref) - 1)
     self.assertEqual(ll.first.value, ref[1])
     self.assertEqual(list(ll), ref[1:])
Esempio n. 9
0
 def test_popright(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     result = ll.popright()
     self.assertEqual(result, ref[-1])
     self.assertEqual(len(ll), len(ref) - 1)
     self.assertEqual(ll.size, len(ref) - 1)
     self.assertEqual(ll.last.value, ref[-2])
     self.assertEqual(list(ll), ref[:-1])
Esempio n. 10
0
 def test_popleft(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     result = ll.popleft()
     self.assertEqual(result, ref[0])
     self.assertEqual(len(ll), len(ref) - 1)
     self.assertEqual(ll.size, len(ref) - 1)
     self.assertEqual(ll.first.value, ref[1])
     self.assertEqual(list(ll), ref[1:])
Esempio n. 11
0
 def test_popright(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     result = ll.popright()
     self.assertEqual(result, ref[-1])
     self.assertEqual(len(ll), len(ref) - 1)
     self.assertEqual(ll.size, len(ref) - 1)
     self.assertEqual(ll.last.value, ref[-2])
     self.assertEqual(list(ll), ref[:-1])
Esempio n. 12
0
 def test_iter(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     idx = 0
     for val in ll:
         self.assertFalse(isinstance(val, sllistnode))
         self.assertEqual(val, ref[idx])
         idx += 1
     self.assertEqual(idx, len(ref))
Esempio n. 13
0
 def test_iternodes(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     idx = 0
     for node in ll.iternodes():
         self.assertTrue(isinstance(node, sllistnode))
         self.assertEqual(node.value, ref[idx])
         idx += 1
     self.assertEqual(idx, len(ref))
Esempio n. 14
0
 def test_reversed(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     idx = len(ref) - 1
     for val in reversed(ll):
         self.assertFalse(isinstance(val, sllistnode))
         self.assertEqual(val, ref[idx])
         idx -= 1
     self.assertEqual(idx, -1)
Esempio n. 15
0
 def test_init_with_sequence(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     self.assertEqual(len(ll), len(ref))
     self.assertEqual(ll.size, len(ref))
     self.assertEqual(list(ll), ref)
     self.assertIsNot(ll.first, None)
     self.assertEqual(ll.first.value, 0)
     self.assertIsNot(ll.last, None)
     self.assertEqual(ll.last.value, 1020)
Esempio n. 16
0
 def test_init_with_sequence(self):
     ref = range(0, 1024, 4)
     ll = sllist(ref)
     self.assertEqual(len(ll), len(ref))
     self.assertEqual(ll.size, len(ref))
     self.assertEqual(list(ll), ref)
     self.assertIsNot(ll.first, None)
     self.assertEqual(ll.first.value, 0)
     self.assertIsNot(ll.last, None)
     self.assertEqual(ll.last.value, 1020)
Esempio n. 17
0
 def test_iternodes_to(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     terminator_index = 200
     terminator = ll.nodeat(terminator_index)
     idx = 0
     for node in ll.iternodes(to=terminator):
         self.assertTrue(isinstance(node, dllistnode))
         self.assertEqual(node.value, ref[idx])
         idx += 1
     self.assertEqual(node.value, (terminator_index-1)*4)
     self.assertEqual(idx, terminator_index)
Esempio n. 18
0
 def test_cmp(self):
     a = sllist(xrange(0, 1100))
     b = sllist(xrange(0, 1101))
     c = range(0, 1100)
     self.assertEqual(cmp(a, a), 0)
     self.assertEqual(cmp(a, b), -1)
     self.assertEqual(cmp(b, a), 1)
     self.assertEqual(cmp(a, c), 0)
     self.assertEqual(cmp(c, a), 0)
     self.assertEqual(cmp([], []), 0)
     self.assertEqual(cmp([], a), -1)
     self.assertEqual(cmp(a, []), 1)
Esempio n. 19
0
 def test_cmp(self):
     a = sllist(xrange(0, 1100))
     b = sllist(xrange(0, 1101))
     c = range(0, 1100)
     self.assertEqual(cmp(a, a), 0)
     self.assertEqual(cmp(a, b), -1)
     self.assertEqual(cmp(b, a), 1)
     self.assertEqual(cmp(a, c), 0)
     self.assertEqual(cmp(c, a), 0)
     self.assertEqual(cmp([], []), 0)
     self.assertEqual(cmp([], a), -1)
     self.assertEqual(cmp(a, []), 1)
Esempio n. 20
0
 def test_iternodes_to(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     terminator_index = 200
     terminator = ll.nodeat(terminator_index)
     idx = 0
     for node in ll.iternodes(to=terminator):
         self.assertTrue(isinstance(node, dllistnode))
         self.assertEqual(node.value, ref[idx])
         idx += 1
     self.assertEqual(node.value, (terminator_index-1)*4)
     self.assertEqual(idx, terminator_index)
Esempio n. 21
0
 def test_concat_empty(self):
     empty = dllist()
     filled_ref = range(0, 1024, 4)
     filled = dllist(filled_ref)
     res = empty + empty
     self.assertEqual(res, dllist([] + []))
     self.assertEqual(len(res), 0)
     res = empty + filled
     self.assertEqual(res, dllist([] + filled_ref))
     self.assertEqual(len(res), len(filled_ref))
     res = filled + empty
     self.assertEqual(res, dllist(filled_ref + []))
     self.assertEqual(len(res), len(filled_ref))
Esempio n. 22
0
 def test_getitem(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     for idx in xrange(len(ll)):
         self.assertFalse(isinstance(ll[idx], dllistnode))
         self.assertEqual(ll[idx], ref[idx])
     for idx in xrange(len(ll)):
         self.assertFalse(isinstance(ll[idx], dllistnode))
         self.assertEqual(ll[-idx - 1], ref[-idx - 1])
     self.assertRaises(TypeError, ll.__getitem__, None)
     self.assertRaises(TypeError, ll.__getitem__, 'abc')
     self.assertRaises(IndexError, ll.__getitem__, len(ref))
     self.assertRaises(IndexError, ll.__getitem__, -len(ref) - 1)
Esempio n. 23
0
 def test_nodeat(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     for idx in xrange(len(ll)):
         self.assertTrue(isinstance(ll.nodeat(idx), dllistnode))
         self.assertEqual(ll.nodeat(idx).value, ref[idx])
     for idx in xrange(len(ll)):
         self.assertTrue(isinstance(ll.nodeat(idx), dllistnode))
         self.assertEqual(ll.nodeat(-idx - 1).value, ref[-idx - 1])
     self.assertRaises(TypeError, ll.nodeat, None)
     self.assertRaises(TypeError, ll.nodeat, 'abc')
     self.assertRaises(IndexError, ll.nodeat, len(ref))
     self.assertRaises(IndexError, ll.nodeat, -len(ref) - 1)
Esempio n. 24
0
 def test_concat_empty(self):
     empty = dllist()
     filled_ref = range(0, 1024, 4)
     filled = dllist(filled_ref)
     res = empty + empty
     self.assertEqual(res, dllist([] + []))
     self.assertEqual(len(res), 0)
     res = empty + filled
     self.assertEqual(res, dllist([] + filled_ref))
     self.assertEqual(len(res), len(filled_ref))
     res = filled + empty
     self.assertEqual(res, dllist(filled_ref + []))
     self.assertEqual(len(res), len(filled_ref))
Esempio n. 25
0
 def test_getitem(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     for idx in xrange(len(ll)):
         self.assertFalse(isinstance(ll[idx], dllistnode))
         self.assertEqual(ll[idx], ref[idx])
     for idx in xrange(len(ll)):
         self.assertFalse(isinstance(ll[idx], dllistnode))
         self.assertEqual(ll[-idx - 1], ref[-idx - 1])
     self.assertRaises(TypeError, ll.__getitem__, None)
     self.assertRaises(TypeError, ll.__getitem__, 'abc')
     self.assertRaises(IndexError, ll.__getitem__, len(ref))
     self.assertRaises(IndexError, ll.__getitem__, -len(ref) - 1)
Esempio n. 26
0
 def test_nodeat(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     for idx in xrange(len(ll)):
         self.assertTrue(isinstance(ll.nodeat(idx), dllistnode))
         self.assertEqual(ll.nodeat(idx).value, ref[idx])
     for idx in xrange(len(ll)):
         self.assertTrue(isinstance(ll.nodeat(idx), dllistnode))
         self.assertEqual(ll.nodeat(-idx - 1).value, ref[-idx - 1])
     self.assertRaises(TypeError, ll.nodeat, None)
     self.assertRaises(TypeError, ll.nodeat, 'abc')
     self.assertRaises(IndexError, ll.nodeat, len(ref))
     self.assertRaises(IndexError, ll.nodeat, -len(ref) - 1)
Esempio n. 27
0
 def test_concat_inplace_empty(self):
     filled_ref = range(0, 1024, 4)
     filled = dllist(filled_ref)
     empty = dllist()
     empty += empty
     self.assertEqual(empty, dllist([] + []))
     self.assertEqual(len(empty), 0)
     empty = dllist()
     empty += filled
     self.assertEqual(empty, dllist([] + filled_ref))
     self.assertEqual(len(empty), len(filled_ref))
     empty = dllist()
     filled += empty
     self.assertEqual(filled, dllist(filled_ref + []))
     self.assertEqual(len(filled), len(filled_ref))
Esempio n. 28
0
 def test_concat_inplace_empty(self):
     filled_ref = range(0, 1024, 4)
     filled = dllist(filled_ref)
     empty = dllist()
     empty += empty
     self.assertEqual(empty, dllist([] + []))
     self.assertEqual(len(empty), 0)
     empty = dllist()
     empty += filled
     self.assertEqual(empty, dllist([] + filled_ref))
     self.assertEqual(len(empty), len(filled_ref))
     empty = dllist()
     filled += empty
     self.assertEqual(filled, dllist(filled_ref + []))
     self.assertEqual(len(filled), len(filled_ref))
Esempio n. 29
0
    def test_del(self):
        ref = range(0, 1024, 4)
        ll = dllist(ref)
        del ll[0]
        del ref[0]
        self.assertEqual(list(ll), ref)
        del ll[len(ll) - 1]
        del ref[len(ref) - 1]
        self.assertEqual(list(ll), ref)
        del ll[(len(ll) - 1) // 2]
        del ref[(len(ref) - 1) // 2]
        self.assertEqual(list(ll), ref)

        def del_item(idx):
            del ll[idx]
        self.assertRaises(IndexError, del_item, len(ll))

        for i in xrange(len(ll)):
            del ll[0]
        self.assertEqual(len(ll), 0)
Esempio n. 30
0
    def test_del(self):
        ref = range(0, 1024, 4)
        ll = dllist(ref)
        del ll[0]
        del ref[0]
        self.assertEqual(list(ll), ref)
        del ll[len(ll) - 1]
        del ref[len(ref) - 1]
        self.assertEqual(list(ll), ref)
        del ll[(len(ll) - 1) // 2]
        del ref[(len(ref) - 1) // 2]
        self.assertEqual(list(ll), ref)

        def del_item(idx):
            del ll[idx]
        self.assertRaises(IndexError, del_item, len(ll))

        for i in xrange(len(ll)):
            del ll[0]
        self.assertEqual(len(ll), 0)
Esempio n. 31
0
 def test_list_hash(self):
     self.assertEqual(hash(dllist()), hash(dllist()))
     self.assertEqual(hash(dllist(range(0, 1024, 4))),
         hash(dllist(range(0, 1024, 4))))
     self.assertEqual(hash(dllist([0, 2])), hash(dllist([0.0, 2.0])))
Esempio n. 32
0
 def test_list_readonly_attributes(self):
     ll = dllist(range(4))
     self.assertRaises(AttributeError, setattr, ll, 'first', None)
     self.assertRaises(AttributeError, setattr, ll, 'last', None)
     self.assertRaises(AttributeError, setattr, ll, 'size', None)
Esempio n. 33
0
 def test_iterprev_to_equal_idx(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, 100, None)
Esempio n. 34
0
 def test_iternext_to_None(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, None, ref[-1])
Esempio n. 35
0
 def test_iternext_to_preceding_idx(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, 50, ref[-1])
Esempio n. 36
0
 def test_iternext_to_following_idx(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, 200, ref[199])
Esempio n. 37
0
 def test_iterprev_to_equal_idx(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, 100, None)
Esempio n. 38
0
 def test_repeat(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     self.assertEqual(ll * 4, dllist(ref * 4))
Esempio n. 39
0
 def test_iternext_to_None(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, None, ref[-1])
Esempio n. 40
0
 def test_iterprev_to_preceding_idx(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, 50, ref[51])
Esempio n. 41
0
 def test_iterprev_to_preceding_idx(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, 50, ref[51])
Esempio n. 42
0
 def test_iterprev_to_None(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, None, ref[0])
Esempio n. 43
0
 def test_iterprev_to_None(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, None, ref[0])
Esempio n. 44
0
 def test_iternext_to_equal_idx(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, 100, None)
Esempio n. 45
0
 def test_repeat_inplace(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     ll *= 4
     self.assertEqual(ll, dllist(ref * 4))
Esempio n. 46
0
 def test_iternext_to_preceding_idx(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, 50, ref[-1])
Esempio n. 47
0
 def test_iterprev_to_following_idx(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, 200, ref[0])
Esempio n. 48
0
 def test_iternext_to_following_idx(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, 200, ref[199])
Esempio n. 49
0
 def test_list_readonly_attributes(self):
     ll = dllist(range(4))
     self.assertRaises(AttributeError, setattr, ll, 'first', None)
     self.assertRaises(AttributeError, setattr, ll, 'last', None)
     self.assertRaises(AttributeError, setattr, ll, 'size', None)
Esempio n. 50
0
 def test_repeat(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     self.assertEqual(ll * 4, dllist(ref * 4))
Esempio n. 51
0
 def test_iternext_to_equal_idx(self):
     ref = range(0, 1024, 4)
     self._test_iternext(ref, 100, 100, None)
Esempio n. 52
0
 def test_repeat_inplace(self):
     ref = range(0, 1024, 4)
     ll = dllist(ref)
     ll *= 4
     self.assertEqual(ll, dllist(ref * 4))
Esempio n. 53
0
 def test_list_hash(self):
     self.assertEqual(hash(dllist()), hash(dllist()))
     self.assertEqual(hash(dllist(range(0, 1024, 4))),
         hash(dllist(range(0, 1024, 4))))
     self.assertEqual(hash(dllist([0, 2])), hash(dllist([0.0, 2.0])))
Esempio n. 54
0
 def test_iterprev_to_following_idx(self):
     ref = range(0, 1024, 4)
     self._test_iterprev(ref, 100, 200, ref[0])