from __future__ import annotations import numpy as np import pytest from control_plane.trading_studio.indicators.parity_harness_v1 import ( FeatureVersion, ParityStatus, compare_array, compare_state, enumerate_native_evaluators, load_frozen_engineering_map, parity_manifest, recompute_coverage, ) pytestmark = pytest.mark.django_db def test_manifest_is_pinned_to_the_frozen_engineering_map(): assert load_frozen_engineering_map()["counts"]["primitives"] == 711 assert parity_manifest()["comparison"]["tolerance_by_engineering_family"] == {} def test_comparisons_record_exact_dtype_nan_and_state_key_failures(): record = compare_array( "feature", np.array([np.nan, 1.0]), np.array([np.nan, 1.0], dtype=np.float32) ) assert record.status == ParityStatus.FAIL assert record.expected_dtype == "float64" assert record.nan_mask_mismatches == 0 state = compare_state( {"trend": np.array([1], dtype=np.int8)}, {"signal": np.array([1], dtype=np.int8)}, ) assert {item.reason for item in state} == {"state_key_mismatch"} def test_native_enumeration_and_coverage_use_only_submitted_versions(): passed = FeatureVersion("v1", "p1", "trend", 9, lambda _: np.array([1]), ParityStatus.PASS) failed = FeatureVersion("v2", "p2", "trend", 1, None, ParityStatus.FAIL) assert enumerate_native_evaluators([passed, failed]) == (passed,) assert recompute_coverage([passed, failed]) == { "submitted_feature_versions": 2, "passed_feature_versions": 1, "submitted_usage_slots": 10, "passed_usage_slots": 9, "coverage_percent": 90.0, "feature_versions": ["v1"], }