from __future__ import annotations import unittest from agent_harness.analysis import summarize_rows class AnalysisTests(unittest.TestCase): def test_paired_treatment_summary(self) -> None: rows = [] values = { "H000": [(0.0, 0.5), (1.0, 0.5)], "H001": [(1.0, 1.0), (1.0, 1.0)], } for harness, task_values in values.items(): for index, (recall, mrr) in enumerate(task_values, start=1): rows.append( { "task_id": f"TASK_{index}", "harness_id": harness, "all_gold_in_top_10": recall == 1.0, "file_recall_at_1": recall, "file_recall_at_5": recall, "file_recall_at_10": recall, "mrr": mrr, "ndcg_at_10": recall, "query_seconds": 0.1, } ) summary = summarize_rows(rows) self.assertEqual(summary["treatments"]["H001"]["all_gold_in_top_10_count"], 2) self.assertEqual( summary["paired_differences"]["H001_minus_H000"]["mean_delta_file_recall_at_10"], 0.5, ) if __name__ == "__main__": unittest.main()