from katrain.core.ai import generate_ai_move from katrain.core.constants import AI_STRATEGIES_RECOMMENDED_ORDER, AI_STRATEGIES, OUTPUT_INFO from katrain.core.base_katrain import KaTrainBase from katrain.core.engine import KataGoEngine from katrain.core.game import Game from katrain.core.constants import AI_STRATEGIES class TestAI: def test_order(self): assert set(AI_STRATEGIES_RECOMMENDED_ORDER) == set(AI_STRATEGIES) def test_ai_strategies(self): katrain = KaTrainBase(force_package_config=True, debug_level=0) engine = KataGoEngine(katrain, katrain.config("engine")) game = Game(katrain, engine) n_rounds = 3 for _ in range(n_rounds): for strategy in AI_STRATEGIES: settings = katrain.config(f"ai/{strategy}") move, played_node = generate_ai_move(game, strategy, settings) katrain.log(f"Testing strategy {strategy} -> {move}", OUTPUT_INFO) assert move.coords is not None assert played_node == game.current_node assert game.current_node.depth == len(AI_STRATEGIES) * n_rounds