def test_multicontains(self): seq1 = List(store=self.store) seq2 = List(store=self.store) seq1.append(self.i1) seq2.append(self.i2) self.assertTrue(self.i1 in seq1) self.assertTrue(self.i2 in seq2) self.assertFalse(self.i1 in seq2) self.assertFalse(self.i2 in seq1)
def test_s_plus_t(self): L1 = List(store=self.store) L2 = List(store=self.store) L1.append(self.i0) L2.append(self.i1) # XXX ASSUMPTION: all operations which return another # instance will return regular lists, *not* Lists. L = L1 + L2 self.assertEqual(L, [self.i0, self.i1])
def test_multicontains(self): seq1 = List(store=self.store) seq2 = List(store=self.store) seq1.append(self.i1) seq2.append(self.i2) self.failUnless(self.i1 in seq1) self.failUnless(self.i2 in seq2) self.failIf(self.i1 in seq2) self.failIf(self.i2 in seq1)
def test_extendSliceSyntax(self): L1 = List(store=self.store) L1.append(self.i0) L1.append(self.i1) L2 = List(store=self.store) L2.append(self.i2) L2.append(self.i3) L1[len(L1):len(L1)] = L2 self.assertContents(L1, [self.i0, self.i1, self.i2, self.i3])
def test_extend(self): L1 = List(store=self.store) L1.append(self.i0) L1.append(self.i1) L2 = List(store=self.store) L2.append(self.i2) L2.append(self.i3) L1.extend(L2) self.assertContents(L1, [self.i0, self.i1, self.i2, self.i3])
def test_multidelitem(self): seq1 = List(store=self.store) seq2 = List(store=self.store) seq1.append(self.i1) seq1.append(self.i2) seq2.append(self.i1) seq2.append(self.i2) del seq1[0] self.assertIdentical(seq2[0], self.i1) self.assertIdentical(seq2[1], self.i2)
def test_contains(self): seq = List(store=self.store) seq.append(self.i1) seq.append(self.i2) self.assertTrue(self.i1 in seq) self.assertTrue(self.i2 in seq) self.assertFalse(self.i3 in seq)
def test_append(self): seq = List(store=self.store) self.assertContents(seq, []) seq.append(self.i0) self.assertContents(seq, [self.i0]) seq.append(self.i1) self.assertContents(seq, [self.i0, self.i1])
def test_contains(self): seq = List(store=self.store) seq.append(self.i1) seq.append(self.i2) self.failUnless(self.i1 in seq) self.failUnless(self.i2 in seq) self.failIf(self.i3 in seq)
def test_appendSliceSyntax(self): seq = List(store=self.store) self.assertContents(seq, []) seq[len(seq):len(seq)] = [self.i0] seq[len(seq):len(seq)] = [self.i1] seq[len(seq):len(seq)] = [self.i2] self.assertContents(seq, [self.i0, self.i1, self.i2])
def test_min_max(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) self.assertIdentical(min(seq), self.i0) self.assertIdentical(max(seq), self.i2)
def test_slice_with_step(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) self.assertEqual(seq[0:4:2], [self.i0, self.i2]) self.assertEqual(seq[1:5:2], [self.i1, self.i3])
def test_index(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) self.assertIdentical(seq[0], self.i0) self.assertIdentical(seq[1], self.i1) self.failIfIdentical(seq[0], self.i1) self.failIfIdentical(seq[1], self.i0)
def test_insert(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i0) seq.insert(1, self.i9) self.assertContents(seq, [self.i0, self.i9, self.i0])
def test_insertSliceSyntax(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i0) seq[1:1] = self.i9 self.assertContents(seq, [self.i0, self.i9, self.i0])
def test_appendAndGetItem(self): seq = List(store=self.store) seq.append(self.i0) self.assertEquals(len(seq), 1) self.assertEquals(seq[0], self.i0) seq.append(self.i1) seq.append(self.i2) self.assertEquals(seq[1], self.i1) self.assertEquals(seq[2], self.i2)
def test_len(self): seq = List(store=self.store) self.assertEqual(len(seq), 0) seq.append(self.i0) self.assertEqual(len(seq), 1) seq.append(self.i0) self.assertEqual(len(seq), 2) seq.append(self.i0) self.assertEqual(len(seq), 3)
def test_setItem(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) self.assertEqual(len(seq), 2) self.assertEqual(seq[0], self.i0) self.assertEqual(seq[1], self.i1) seq[1] = self.i2 self.assertEqual(seq[1], self.i2)
def test_negativeIndices(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) self.assertEqual(seq[-1], self.i2) self.assertEqual(seq[-2], self.i1) self.assertEqual(seq[-3], self.i0) self.assertRaises(IndexError, seq.__getitem__, -4)
def test_sort(self): seq = List(store=self.store) def seq_randomize(): while len(seq): seq.pop() seq.append(self.i3) seq.append(self.i0) seq.append(self.i1) seq.append(self.i4) seq.append(self.i2) seq_randomize() seq.sort() self.assertContents(seq, [self.i0, self.i1, self.i2, self.i3, self.i4]) seq_randomize() seq.sort(lambda x,y: cmp(y,x)) self.assertContents(seq, [self.i4, self.i3, self.i2, self.i1, self.i0]) def strangecmp(x, y): xfoo, yfoo = x.foo, y.foo if xfoo < 3: xfoo += 100 if yfoo < 3: yfoo += 100 return cmp(xfoo, yfoo) seq_randomize() seq.sort(strangecmp) self.assertContents(seq, [self.i3, self.i4, self.i0, self.i1, self.i2]) seq_randomize() seq.sort(None, lambda x:x, True) self.assertContents(seq, [self.i4, self.i3, self.i2, self.i1, self.i0]) seq_randomize() seq.sort(strangecmp, lambda x:x, True) self.assertContents(seq, [self.i2, self.i1, self.i0, self.i4, self.i3])
def test_slices(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) self.assertEqual(seq[0:2], [self.i0, self.i1]) self.assertEqual(seq[0:3], [self.i0, self.i1, self.i2]) self.assertEqual(seq[1:0], []) self.assertEqual(seq[-1:], [self.i3])
def test_reverse(self): # UPDATE my_list_tbl SET _index = (_index - listlength + 1) * -1 seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) self.assertContents(seq, [self.i0, self.i1, self.i2, self.i3]) seq.reverse() self.assertContents(seq, [self.i3, self.i2, self.i1, self.i0])
def test_deleteSlice(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) del seq[1:3] self.assertEqual(len(seq), 2) self.assertIdentical(seq[0], self.i0) self.assertIdentical(seq[1], self.i3)
def test_count(self): seq = List(store=self.store) seq.append(self.i1) seq.append(self.i2) seq.append(self.i2) seq.append(self.i3) seq.append(self.i3) seq.append(self.i3) self.assertEqual(seq.count(self.i1), 1) self.assertEqual(seq.count(self.i2), 2) self.assertEqual(seq.count(self.i3), 3)
def test_deleteSliceStep(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) seq.append(self.i4) seq.append(self.i5) seq.append(self.i6) del seq[1:6:2] self.assertContents(seq, [self.i0, self.i2, self.i4, self.i6])
def test_sliceAssignmentStep(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) seq.append(self.i4) seq.append(self.i5) seq.append(self.i6) seq[1:5:2] = [self.i7, self.i7] self.assertContents( seq, [self.i0, self.i7, self.i2, self.i7, self.i4, self.i5, self.i6])
def test_sliceAssignment(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i0) seq.append(self.i0) seq.append(self.i0) self.assertContents(seq, [self.i0, self.i0, self.i0, self.i0]) seq[1:3] = [self.i1, self.i2] self.assertContents(seq, [self.i0, self.i1, self.i2, self.i0]) seq[1:3] = [self.i3] self.assertContents(seq, [self.i0, self.i3, self.i0]) seq[1:3] = [] self.assertContents(seq, [self.i0])
def test_delItem(self): seq = List(store=self.store) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) self.assertEqual(seq.length, 3) self.assertEqual(seq[0], self.i1) self.assertEqual(seq[1], self.i2) self.assertEqual(seq[2], self.i3) del seq[1] self.assertEqual(seq.length, 2) self.assertEqual(seq[0], self.i1) self.assertEqual(seq[1], self.i3) self.assertRaises(IndexError, seq.__getitem__, 2)
def test_pop(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i2) seq.append(self.i3) seq.append(self.i4) self.assertIdentical(seq.pop(), self.i4) self.assertContents(seq, [self.i0, self.i1, self.i2, self.i3]) self.assertIdentical(seq.pop(0), self.i0) self.assertContents(seq, [self.i1, self.i2, self.i3]) self.assertIdentical(seq.pop(-2), self.i2) self.assertContents(seq, [self.i1, self.i3]) self.assertRaises(IndexError, seq.pop, 13)
def test_index(self): seq = List(store=self.store) seq.append(self.i0) seq.append(self.i1) seq.append(self.i0) seq.append(self.i2) seq.append(self.i0) seq.append(self.i2) self.assertEqual(seq.index(self.i0), 0) self.assertEqual(seq.index(self.i0, 0), 0) self.assertEqual(seq.index(self.i0, 1), 2) self.assertEqual(seq.index(self.i1), 1) self.assertEqual(seq.index(self.i1, 1), 1) self.assertEqual(seq.index(self.i2), 3) self.assertEqual(seq.index(self.i2, 4), 5) self.assertRaises(ValueError, seq.index, self.i3) self.assertRaises(ValueError, seq.index, self.i1, 3) self.assertRaises(ValueError, seq.index, self.i0, 1, 1)