mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-13 11:22:04 +00:00
feat(training): add opt-in teamplay evaluation
This commit is contained in:
@@ -23,11 +23,11 @@ class EvaluatePairTests(unittest.TestCase):
|
||||
self.assertEqual(run_half.call_args_list[1].args, ("godot", "reference.json", "candidate.json", 4, 16, 42))
|
||||
self.assertEqual(
|
||||
run_half.call_args_list[0].kwargs,
|
||||
{"grounded_a": False, "grounded_b": True},
|
||||
{"grounded_a": False, "grounded_b": True, "team_size": 1},
|
||||
)
|
||||
self.assertEqual(
|
||||
run_half.call_args_list[1].kwargs,
|
||||
{"grounded_a": True, "grounded_b": False},
|
||||
{"grounded_a": True, "grounded_b": False, "team_size": 1},
|
||||
)
|
||||
self.assertEqual(record["wins_a"], 4)
|
||||
self.assertEqual(record["wins_b"], 3)
|
||||
@@ -42,6 +42,20 @@ class EvaluatePairTests(unittest.TestCase):
|
||||
with self.assertRaisesRegex(ValueError, "even number"):
|
||||
evaluate.evaluate_pair("godot", "a", "b", episodes, 16, 1)
|
||||
|
||||
def test_rejects_unsupported_team_size_before_launch(self) -> None:
|
||||
with self.assertRaisesRegex(ValueError, "team_size must be 1 or 2"):
|
||||
evaluate.run_half("godot", "a", "b", 2, 16, 1, team_size=3)
|
||||
|
||||
@patch("evaluate.run_half")
|
||||
def test_2v2_evaluation_preserves_side_swap_and_team_size(self, run_half) -> None:
|
||||
run_half.side_effect = [
|
||||
{"episodes": 2, "goals_a": 1, "goals_b": 0, "draws": 1},
|
||||
{"episodes": 2, "goals_a": 0, "goals_b": 1, "draws": 1},
|
||||
]
|
||||
evaluate.evaluate_pair("godot", "a", "b", 4, 16, 9, team_size=2)
|
||||
self.assertEqual(run_half.call_args_list[0].kwargs["team_size"], 2)
|
||||
self.assertEqual(run_half.call_args_list[1].kwargs["team_size"], 2)
|
||||
|
||||
@patch("evaluate.run_half")
|
||||
def test_identical_policy_results_cancel_physical_side_bias(self, run_half) -> None:
|
||||
# Replaying the same deterministic matchup must produce the same
|
||||
|
||||
Reference in New Issue
Block a user