예제 #1
0
    def perform_test(self, status_dict):
        """Test that the heuristic on leafs is consistent with the utility"""

        # Build models
        map_obj = Map(status_dict["game"]["board"]["tiles"])
        status = Status(status_dict["game"], map_obj)

        # Simulate a final status
        status.turn = status.max_turns

        heuristic_tuple = self.heuristic.heuristic(status)
        utility_tuple = utility(status)

        # Check that heuristic and utility are consistent
        for i in range(4):
            for j in range(4):
                if utility_tuple[i] > utility_tuple[j]:
                    self.assertGreater(heuristic_tuple[i], heuristic_tuple[j])
                elif utility_tuple[i] == utility_tuple[j]:
                    self.assertAlmostEqual(
                        heuristic_tuple[i],
                        heuristic_tuple[j]
                    )
                else:
                    self.assertLess(heuristic_tuple[i], heuristic_tuple[j])
예제 #2
0
    def perform_test(self, status_dict):
        """Test that simulate returns a new object"""

        # Build models
        map_obj = Map(status_dict["game"]["board"]["tiles"])
        status = Status(status_dict["game"], map_obj)

        # Simulate the last turn
        status.turn = status.max_turns

        next_status = simulate(status, Action.north)

        self.assertEqual(status, next_status)