def test_speed_of_rep_plus_minus():
    pr = cProfile.Profile()
    neighbors_finder = MonotoneConjunctionNeighborhood()

    pr.enable()

    for i in xrange(100):
        neighbors_finder.get_neighborhood_of_rep(
            (1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0,
             0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
             0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0,
             1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0,
             1, 0, 1, 1, 0, 0, 0, 1))

    pr.disable()

    pstats.Stats(pr).sort_stats("time").print_stats()
Ejemplo n.º 2
0
class TestNeighborsFinder(unittest.TestCase):
    def setUp(self):
        self.neighbors_finder = MonotoneConjunctionNeighborhood()
        self.neighbor_getter = ConjunctionNeighborhoodOutputOne()

    def test_find_for_zero(self):
        neighbors = set()

        neighbors.add((0, 0, 0, 0, 0))
        neighbors.add((1, 0, 0, 0, 0))
        neighbors.add((0, 1, 0, 0, 0))
        neighbors.add((0, 0, 1, 0, 0))
        neighbors.add((0, 0, 0, 1, 0))
        neighbors.add((0, 0, 0, 0, 1))

        self.assertEqual(neighbors, self.neighbors_finder.get_neighborhood_of_rep((0, 0, 0, 0, 0)))
        self.assertIn(self.neighbor_getter.get_one_of_neighborhood_of_rep((0, 0, 0, 0, 0)), neighbors)

    def test_find_for_other(self):
        neighbors = set()

        neighbors.add((0, 0, 0, 0, 0))

        neighbors.add((1, 0, 0, 0, 0))
        neighbors.add((0, 1, 0, 0, 0))
        neighbors.add((0, 0, 1, 0, 0))
        neighbors.add((0, 0, 0, 1, 0))
        neighbors.add((0, 0, 0, 0, 1))

        neighbors.add((1, 0, 1, 0, 0))
        neighbors.add((0, 1, 1, 0, 0))
        neighbors.add((0, 0, 1, 1, 0))
        neighbors.add((0, 0, 1, 0, 1))

        self.assertEqual(neighbors, self.neighbors_finder.get_neighborhood_of_rep((0, 0, 1, 0, 0)))
        self.assertIn(self.neighbor_getter.get_one_of_neighborhood_of_rep((0, 0, 1, 0, 0)), neighbors)

    def test_find_for_another_one(self):
        neighbors = set()

        neighbors.add((1, 1, 1, 1, 0))

        neighbors.add((1, 1, 1, 0, 1))
        neighbors.add((1, 1, 0, 1, 1))
        neighbors.add((1, 0, 1, 1, 1))
        neighbors.add((0, 1, 1, 1, 1))

        neighbors.add((1, 1, 1, 0, 0))
        neighbors.add((1, 1, 0, 1, 0))
        neighbors.add((1, 0, 1, 1, 0))
        neighbors.add((0, 1, 1, 1, 0))
        neighbors.add((1, 1, 1, 1, 1))

        self.assertEqual(neighbors, self.neighbors_finder.get_neighborhood_of_rep((1, 1, 1, 1, 0)))
        self.assertIn(self.neighbor_getter.get_one_of_neighborhood_of_rep((1, 1, 1, 1, 0)), neighbors)

    def test_find_for_unique(self):
        neighbors = set()

        neighbors.add((1, 0))
        neighbors.add((0, 1))
        neighbors.add((0, 0))
        neighbors.add((1, 1))

        self.assertEqual(neighbors, self.neighbors_finder.get_neighborhood_of_rep((0, 1)))
        self.assertIn(self.neighbor_getter.get_one_of_neighborhood_of_rep((0, 1)), neighbors)
Ejemplo n.º 3
0
class TestNeighborsFinder(unittest.TestCase):
    def setUp(self):
        self.neighbors_finder = MonotoneConjunctionNeighborhood()
        self.neighbor_getter = ConjunctionNeighborhoodOutputOne()

    def test_find_for_zero(self):
        neighbors = set()

        neighbors.add((0, 0, 0, 0, 0))
        neighbors.add((1, 0, 0, 0, 0))
        neighbors.add((0, 1, 0, 0, 0))
        neighbors.add((0, 0, 1, 0, 0))
        neighbors.add((0, 0, 0, 1, 0))
        neighbors.add((0, 0, 0, 0, 1))

        self.assertEqual(
            neighbors,
            self.neighbors_finder.get_neighborhood_of_rep((0, 0, 0, 0, 0)))
        self.assertIn(
            self.neighbor_getter.get_one_of_neighborhood_of_rep(
                (0, 0, 0, 0, 0)), neighbors)

    def test_find_for_other(self):
        neighbors = set()

        neighbors.add((0, 0, 0, 0, 0))

        neighbors.add((1, 0, 0, 0, 0))
        neighbors.add((0, 1, 0, 0, 0))
        neighbors.add((0, 0, 1, 0, 0))
        neighbors.add((0, 0, 0, 1, 0))
        neighbors.add((0, 0, 0, 0, 1))

        neighbors.add((1, 0, 1, 0, 0))
        neighbors.add((0, 1, 1, 0, 0))
        neighbors.add((0, 0, 1, 1, 0))
        neighbors.add((0, 0, 1, 0, 1))

        self.assertEqual(
            neighbors,
            self.neighbors_finder.get_neighborhood_of_rep((0, 0, 1, 0, 0)))
        self.assertIn(
            self.neighbor_getter.get_one_of_neighborhood_of_rep(
                (0, 0, 1, 0, 0)), neighbors)

    def test_find_for_another_one(self):
        neighbors = set()

        neighbors.add((1, 1, 1, 1, 0))

        neighbors.add((1, 1, 1, 0, 1))
        neighbors.add((1, 1, 0, 1, 1))
        neighbors.add((1, 0, 1, 1, 1))
        neighbors.add((0, 1, 1, 1, 1))

        neighbors.add((1, 1, 1, 0, 0))
        neighbors.add((1, 1, 0, 1, 0))
        neighbors.add((1, 0, 1, 1, 0))
        neighbors.add((0, 1, 1, 1, 0))
        neighbors.add((1, 1, 1, 1, 1))

        self.assertEqual(
            neighbors,
            self.neighbors_finder.get_neighborhood_of_rep((1, 1, 1, 1, 0)))
        self.assertIn(
            self.neighbor_getter.get_one_of_neighborhood_of_rep(
                (1, 1, 1, 1, 0)), neighbors)

    def test_find_for_unique(self):
        neighbors = set()

        neighbors.add((1, 0))
        neighbors.add((0, 1))
        neighbors.add((0, 0))
        neighbors.add((1, 1))

        self.assertEqual(neighbors,
                         self.neighbors_finder.get_neighborhood_of_rep((0, 1)))
        self.assertIn(
            self.neighbor_getter.get_one_of_neighborhood_of_rep((0, 1)),
            neighbors)