File size: 1,321 Bytes
d61821a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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()