vla / tests /test_lattice_eval.py
anhtld's picture
Initial commit: DoVLA-CIL codebase (h=16 breakthrough) (part 2)
20c251e verified
Raw
History Blame Contribute Delete
987 Bytes
from __future__ import annotations
from dovla_cil.eval.lattice_eval import (
_empty_task_stats,
_finalize_task_stats,
_ndcg,
_validation_group_ids,
)
def test_lattice_ndcg_rewards_correct_order() -> None:
utilities = [2.0, 1.0, 0.0]
assert _ndcg([3.0, 2.0, 1.0], utilities) == 1.0
assert _ndcg([1.0, 2.0, 3.0], utilities) < 1.0
def test_lattice_validation_split_is_group_deterministic() -> None:
groups = [f"g{index}" for index in range(10)]
first = _validation_group_ids(groups, val_fraction=0.2, seed=7)
second = _validation_group_ids(groups, val_fraction=0.2, seed=7)
assert first == second
assert len(first) == 2
assert len(set(first)) == len(first)
def test_edge_metrics_are_undefined_without_comparable_pairs() -> None:
metrics = _finalize_task_stats(_empty_task_stats())
assert metrics["num_pairs"] == 0
assert metrics["pairwise_ranking_accuracy"] is None
assert metrics["potential_edge_mae"] is None