def test_remove(self): fifo = FIFOQueue() fifo.add(1) fifo.add(2) fifo.add(3) self.assertFalse(fifo.remove(5)) self.assertTrue(fifo.remove(2)) self.assertEqual(2, fifo.length()) self.assertEqual(1, fifo.pop()) self.assertEqual(3, fifo.pop())
def test_pop_add(self): fifo = FIFOQueue() fifo.add(1) fifo.add(2) fifo.add(3) self.assertEqual(3, fifo.length()) self.assertEqual(1, fifo.pop()) self.assertEqual(2, fifo.pop()) self.assertEqual(3, fifo.pop())
def test_is_empty(self): fifo = FIFOQueue() self.assertTrue(fifo.is_empty(), "New queue should be empty") fifo.add(1) self.assertFalse(fifo.is_empty(), "Queue with added element shouldn't be empty") fifo.pop() self.assertTrue( fifo.is_empty(), "When all elements removed from a queue it should be empty")
def test_is_empty(self): fifo = FIFOQueue() self.assertTrue(fifo.is_empty(), "New queue should be empty") fifo.add(1) self.assertFalse(fifo.is_empty(), "Queue with added element shouldn't be empty") fifo.pop() self.assertTrue(fifo.is_empty(), "When all elements removed from a queue it should be empty")
def reduce_domains(self, csp, var=None, value=None, assignment=None): if var == None: result = DomainRestoreInfo() queue = FIFOQueue() for var in csp.get_variables(): queue.add(var) self._reduce_domains(queue, csp, result, Assignment()) return result else: result = DomainRestoreInfo() domain = csp.get_domain(var) if domain.contains(value): if domain.size() > 1: queue = FIFOQueue() queue.add(var) result.store_domain_for(var, domain) csp.set_domain(var, Domain([value])) self._reduce_domains(queue,csp, result, assignment) else: result.empty_domain_found = True return result
def search(self, problem): return self._search.search(problem, FIFOQueue())