예제 #1
0
 def test_remover_a_esquerda_lista_1_elemento(self):
     lista = ListaDuplamenteLigada()
     lista.adicionar(0)
     self.assertEqual(0, lista.remover_a_esquerda())
     self.assertEqual(0, lista.tam)
     self.assertIsNone(lista.primeiro)
     self.assertIsNone(lista.ultimo)
예제 #2
0
    def test_iterar_lista_reversed_nao_vazia(self):
        lista = ListaDuplamenteLigada()
        numeros = list(range(3))
        for n in numeros:
            lista.adicionar(n)

        for i, elemento_da_lista in zip(reversed(range(3)), reversed(lista)):
            self.assertEqual(i, elemento_da_lista)
예제 #3
0
 def test_adicionar_primeiro_a_esquerda(self):
     lista = ListaDuplamenteLigada()
     lista.adicionar_a_esquerda(0)
     self.assertEqual(1, lista.tam)
     primeiro = lista.primeiro
     self.assertEqual(0, primeiro.valor)
     self.assertEqual(primeiro, lista.ultimo)
     self.assertIsNone(primeiro.esquerdo)
     self.assertIsNone(primeiro.direito)
예제 #4
0
 def test_remover_a_esquerda_lista_2_elementos(self):
     lista = ListaDuplamenteLigada()
     lista.adicionar(0)
     lista.adicionar(1)
     self.assertEqual(0, lista.remover_a_esquerda())
     self.assertEqual(1, lista.tam)
     primeiro = lista.primeiro
     self.assertEqual(primeiro, lista.ultimo)
     self.assertEqual(1, primeiro.valor)
     self.assertIsNone(primeiro.direito)
     self.assertIsNone(primeiro.esquerdo)
예제 #5
0
 def test_adicionar_segundo_a_esquerda(self):
     lista = ListaDuplamenteLigada()
     lista.adicionar_a_esquerda(0)
     lista.adicionar_a_esquerda(1)
     self.assertEqual(2, lista.tam)
     primeiro = lista.primeiro
     self.assertEqual(1, primeiro.valor)
     ultimo = lista.ultimo
     self.assertEqual(0, ultimo.valor)
     self.assertEqual(primeiro, ultimo.esquerdo)
     self.assertEqual(ultimo, primeiro.direito)
     self.assertIsNone(primeiro.esquerdo)
     self.assertIsNone(ultimo.direito)
예제 #6
0
 def test_len(self):
     lista = ListaDuplamenteLigada()
     self.assertEqual(0, len(lista))
     lista.adicionar_a_esquerda(0)
     lista.adicionar_a_esquerda(1)
     lista.adicionar_a_esquerda(2)
     self.assertEqual(3, len(lista))
예제 #7
0
 def test_remover_lista_3_elementos(self):
     lista = ListaDuplamenteLigada()
     lista.adicionar(0)
     lista.adicionar(1)
     lista.adicionar(2)
     self.assertEqual(2, lista.remover())
     self.assertEqual(2, lista.tam)
     primeiro = lista.primeiro
     ultimo = lista.ultimo
     self.assertEqual(ultimo, primeiro.direito)
     self.assertEqual(primeiro, ultimo.esquerdo)
     self.assertEqual(0, primeiro.valor)
     self.assertEqual(1, ultimo.valor)
     self.assertIsNone(primeiro.esquerdo)
     self.assertIsNone(ultimo.direito)
예제 #8
0
    def test_adicionar_terceiro(self):
        lista = ListaDuplamenteLigada()
        lista.adicionar(0)
        lista.adicionar(1)
        lista.adicionar(2)
        self.assertEqual(3, lista.tam)
        primeiro = lista.primeiro
        self.assertEqual(0, primeiro.valor)
        ultimo = lista.ultimo
        segundo = primeiro.direito
        self.assertEqual(1, segundo.valor)
        self.assertEqual(2, ultimo.valor)

        self.assertEqual(primeiro, segundo.esquerdo)

        self.assertEqual(segundo, ultimo.esquerdo)
        self.assertEqual(ultimo, segundo.direito)

        self.assertIsNone(primeiro.esquerdo)
        self.assertIsNone(ultimo.direito)
예제 #9
0
 def test_init(self):
     lista = ListaDuplamenteLigada()
     self.assertEqual(0, lista.tam)
     self.assertIsNone(lista.primeiro)
     self.assertIsNone(lista.ultimo)
예제 #10
0
 def test_iterar_reversed_lista_vazia(self):
     lista = ListaDuplamenteLigada()
     for i in reversed(lista):
         self.fail('Não deveria executar nada')
예제 #11
0
 def test_remover_a_esquerda_lista_vazia(self):
     lista = ListaDuplamenteLigada()
     self.assertRaises(ListaVaziaErro, lista.remover_a_esquerda)