from __future__ import annotations from coolrl_lost_cities.games.classic.game import LostCitiesConfig from coolrl_lost_cities.games.classic.deep_cfr.imitation import ( collect_heuristic_samples, new_pretrained_strategy_network, ) def test_collect_heuristic_samples_shapes() -> None: x, y, legal = collect_heuristic_samples(LostCitiesConfig(seed=61), games=1, seed=61) assert len(x) == len(y) == len(legal) assert x.ndim == 2 assert y.shape == legal.shape assert y.sum(axis=1).min() == 1.0 def test_pretrain_strategy_network_smoke() -> None: network, metrics = new_pretrained_strategy_network( LostCitiesConfig(seed=67), hidden_size=16, games=1, seed=67, steps=1, ) assert metrics.samples > 0 assert metrics.loss >= 0.0 assert network is not None