File size: 933 Bytes
1bb570d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import importlib.util
import json
from pathlib import Path
PATH = Path(__file__).parents[1] / "scripts" / "prepare_independent_candidate.py"
SPEC = importlib.util.spec_from_file_location("prepare_independent_candidate", PATH)
MOD = importlib.util.module_from_spec(SPEC)
SPEC.loader.exec_module(MOD)
def test_identity_prefers_registry_key_and_normalizes_case():
assert MOD.identity({"cas": " 106-22-9 ", "smiles": "ignored"}) == "106-22-9"
assert MOD.identity({"smiles": " cco "}) == "CCO"
def test_protocol_forbids_reusing_frozen_evaluation():
protocol = json.loads(
(Path(__file__).parents[1] / "artifacts" / "pimt_candidate_20260716_a_evaluation_protocol.json").read_text()
)
assert protocol["status"].startswith("preregistered_before_training")
assert len(protocol["separation"]["candidate_must_not_be_scored_on"]) == 3
assert protocol["fresh_evaluation"]["one_confirmatory_run"] is True
|