コード例 #1
0
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
コード例 #2
0
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'
コード例 #3
0
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
コード例 #4
0
ファイル: benchmark.py プロジェクト: fogdingding/rDB
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)
コード例 #5
0
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'
コード例 #6
0
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
コード例 #7
0
def listaVazia():
    return SkipList(lambda c1, c2: IGUAIS if c1 == c2 else max(c1, c2))
コード例 #8
0
 def setUp(self):
     seed(0)
     self.sl = SkipList()
コード例 #9
0
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))
コード例 #10
0
 def setUp(self):
     seed(0)
     self.sl = SkipList()
コード例 #11
0
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))