def testes_metodo_setitem_informarUmCallable(): precos = SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2)) precos['caneta'] = 2 precos['caneta'] = lambda c, v: v * 2 precos['caderno'] = lambda c, v: 20 assert precos['caneta'] == 4 assert precos['caderno'] == 20
def testes_metodo_setitem_alterarOValorAssociadoAUmaChave(): precos = SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2)) precos[2] = 'caneta' precos[5] = 'regua' precos[10] = 'caderno' precos[5] = 'apontador' precos[10] = 'marcador' assert precos[5] == 'apontador' assert precos[10] == 'marcador'
def listaPronta(): precos = SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2)) precos[2] = 'caneta' precos[100] = 'uniforme' precos[60] = 'fone' precos[15] = 'estojo' precos[30] = 'livro' precos[5] = 'regua' precos[50] = 'mochila' precos[10] = 'caderno' return precos
def benchmark(generator): seq = list(generator) sl = SkipList() slt = benchmarkOperation(sl, insertions, seq) rbt = rbtree() rbtt = benchmarkOperation(rbt, insertions, seq) l = LinkedList() lt = benchmarkOperation(l, insertions, seq) print '%.2lf & %.2lf & %.2lf\\\\' % (slt, rbtt, lt)
def testes_metodo_setitem(): precos = SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2)) precos[2] = 'caneta' precos[5] = 'regua' precos[10] = 'caderno' precos[15] = 'estojo' precos[30] = 'livro' precos[100] = 'uniforme' assert precos[2] == 'caneta' assert precos[5] == 'regua' assert precos[10] == 'caderno' assert precos[15] == 'estojo' assert precos[30] == 'livro' assert precos[100] == 'uniforme'
def testes_propiedade_tamanho_aposInserirAlgunsPares(): precos = SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2)) precos[2] = 'caneta' precos[5] = 'regua' precos[10] = 'caderno' assert precos.tamanho == 3 precos[15] = 'estojo' precos[30] = 'livro' assert precos.tamanho == 5 precos[50] = 'mochila' assert precos.tamanho == 6
def listaVazia(): return SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2))
def setUp(self): seed(0) self.sl = SkipList()
class SkipListTest(unittest.TestCase): def setUp(self): seed(0) self.sl = SkipList() # Test insert(elem) def testInsertionInEmptyList(self): self.sl.insert(1) self.assertTrue(self.sl.contains(1)) self.assertFalse(self.sl.contains(2)) def testInsersionAtTheBeginningOfTheList(self): self.sl.insert(2) self.sl.insert(1) self.assertTrue(self.sl.contains(1)) self.assertTrue(self.sl.contains(2)) def testInsersionAtTheEndOfTheList(self): self.sl.insert(1) self.sl.insert(2) self.assertTrue(self.sl.contains(1)) self.assertTrue(self.sl.contains(2)) def testInsertionOfTheSameElement(self): self.sl.insert(1) self.sl.insert(1) self.assertTrue(self.sl.contains(1)) self.assertEqual(1, len(self.sl)) # Test remove(elem) def testRemovalFromASingleElementList(self): self.sl.insert(1) self.assertTrue(self.sl.contains(1)) self.sl.remove(1) self.assertFalse(self.sl.contains(1)) def testRemovalFromAnElementNotInTheList(self): self.sl.remove(1) self.sl.insert(1) self.assertTrue(self.sl.contains(1)) self.sl.remove(2) self.assertTrue(self.sl.contains(1)) # Test find(elem) def testFindingOfASingleElementList(self): self.sl.insert(1) node = self.sl.find(1) self.assertEqual(1, node.elem) def testFindingOfTheMiddleElementList(self): self.sl.insert(1) self.sl.insert(2) self.sl.insert(3) node = self.sl.find(2) self.assertEqual(2, node.elem) def testFindingAnElementNotInTheList(self): self.assertEqual(None, self.sl.find(1))