예제 #1
0
 def test_has_space(self):
     p = Pilha('TESTE')
     assert p.has_space() is True
     p.stack(self.c1)
     assert p.has_space() is True
     for r in range(29):
         p.stack(Container(str(r)))
     assert p.has_space() is False
     assert p.stack(self.c2) is False
예제 #2
0
 def test_is_position_free(self):
     p = Pilha('TESTE')
     assert p.is_position_free('A1')
     position = p.stack(self.c1)
     assert p.is_position_free(position) == (False, False)
     position = p.stack(self.c2)
     assert p.is_position_free(position) == (False, False)
     p.remove(position, self.c2)
     assert p.is_position_free(position)
예제 #3
0
 def test_time_mean(self):
     p = Pilha('TESTE')
     assert p.time_mean() == 0
     p.stack(self.c1)
     p.stack(self.c2)
     assert p.time_mean() == \
            (self.c1.time_to_leave + self.c2.time_to_leave) / 2
     p = Pilha('TESTE')
     for i in range(30):
         p.stack(self.c1)
     assert p.time_mean() == self.c1.time_to_leave
예제 #4
0
 def test_side_locked(self):
     p = Pilha('TESTE')
     position1 = p.stack(self.c1, 'A1')
     # print('p', position1)
     coluna, altura = p.position_totuple(position1)
     # print(coluna, altura)
     locked = p.side_locked(coluna, altura)
     assert locked == set()
     position2 = p.stack(self.c2, 'B1')
     coluna, altura = p.position_totuple(position1)
     locked = p.side_locked(coluna, altura)
     assert locked == {Pilha.RIGHT}
     locked = p.side_locked_position(position2)
     assert locked == {Pilha.LEFT}
예제 #5
0
 def test_up_locked(self):
     p = Pilha('TESTE')
     position1 = p.stack(self.c1)
     position2 = p.stack(self.c2)
     # print(position1)
     coluna, altura = p.position_totuple(position1)
     locked = p.up_locked(coluna, altura)
     assert locked is True
     locked = p.up_locked_position(position2)
     assert locked is False
     p.stack(Container('3'))
     p.stack(Container('4'))
     position5 = p.stack(Container('5'))
     locked = p.up_locked_position(position5)
     assert locked is True
예제 #6
0
 def test_first_free_position(self):
     p = Pilha('TESTE')
     position = p.first_free_position()
     assert position == ('A', '1')
     position = p.stack(self.c1, position)
     position2 = p.first_free_position()
     assert position != position2
예제 #7
0
 def test_getcontainerinposition(self):
     p = Pilha('TESTE')
     position = p.stack(self.c1)
     # print(position)
     c = p.get_containerinposition(position)
     assert c == self.c1
     c = p.get_containerinposition('NONECSIST')
     assert c is None
예제 #8
0
 def test_remove(self):
     p = Pilha('TESTE')
     position1 = p.stack(self.c1)
     position2 = p.stack(self.c2)
     coluna, altura = p.position_totuple(position1)
     locked = p.up_locked(coluna, altura)
     assert locked is True
     success = p.remove(position1, self.c1)
     assert success is False
     assert p.is_position_free(position1) == (False, False)
     success = p.remove(position1, self.c2)
     assert success is False
     assert p.is_position_free(position1) == (False, False)
     success = p.remove(position2, self.c2)
     assert success is True
     assert p.is_position_free(position2) == ('A', '2')
     coluna, altura = p.position_totuple(position1)
     locked = p.up_locked(coluna, altura)
     assert locked is False
예제 #9
0
 def test_posicao_invalida(self):
     p = Pilha('TESTE')
     position = p.stack(self.c1, 'A2')
     # print(position)
     assert position is False
예제 #10
0
 def test_posicao_inexistente(self):
     p = Pilha('TESTE')
     with self.assertRaises(KeyError):
         p.stack(self.c1, 'A9')