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 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())
Esempio n. 7
0
    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
Esempio n. 8
0
 def search(self, problem):
     return self._search.search(problem, FIFOQueue())