Files

26 lines
984 B
Python

"""Projection invariants from E题V2: quality weights means, not physical coverage."""
from __future__ import annotations
import unittest
import numpy as np
from . import compare_models as cm
class ProjectionCoverageTests(unittest.TestCase):
def test_quality_changes_mean_but_not_physical_coverage(self) -> None:
values = np.asarray([[0.0], [10.0]], dtype=np.float32)
observed = np.ones_like(values, dtype=bool)
intervals = np.asarray([[0.0, 0.5], [0.5, 1.0]], dtype=np.float32)
qualities = np.asarray([1.0, 1e-8], dtype=np.float32)
edges = np.asarray([0.0, 1.0], dtype=np.float32)
projected, mask, coverage = cm._project_rows(values, observed, intervals, qualities, edges)
self.assertTrue(bool(mask[0, 0]))
self.assertAlmostEqual(float(projected[0, 0]), 10.0 * 1e-8 / (1.0 + 1e-8), places=6)
self.assertAlmostEqual(float(coverage[0, 0]), 1.0, places=6)
if __name__ == "__main__":
unittest.main()