File size: 1,727 Bytes
1fba539
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
42
from __future__ import annotations

import importlib.util
from pathlib import Path


def _load_case_module():
    path = Path(__file__).resolve().parents[1] / "benchmark" / "case-studies" / "hbb-variant-mapping" / "run.py"
    spec = importlib.util.spec_from_file_location("hbb_variant_case", path)
    assert spec is not None and spec.loader is not None
    module = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(module)
    return module


def test_hbb_e7v_case_is_deterministic_and_mapped():
    case = _load_case_module()
    result = case.run_case()

    assert result["status"] == "executed"
    assert result["source"]["accession"] == "P68871"
    assert result["source"]["sequence_length"] == 147
    assert result["source"]["sequence_sha256"] == case.EXPECTED_WT_SHA256
    assert result["variant"]["position"] == 7
    assert result["variant"]["ref"] == "E"
    assert result["variant"]["alt"] == "V"
    assert result["variant"]["mutant_sequence_sha256"] == case.EXPECTED_MUTANT_SHA256
    assert result["deterministic_result"]["alignment_position"] == 7
    assert result["deterministic_result"]["reference_symbol"] == "E"
    assert result["deterministic_result"]["sequence_count"] == 2
    assert result["deterministic_result"]["alignment_length"] == 147
    assert result["reproducibility"]["random_seed_required"] is False
    assert "does not establish diagnostic validity" in result["scientific_boundary"]


def test_hbb_fixture_rejects_reference_drift():
    case = _load_case_module()
    assert case.sha256_text(case.HBB_WILDTYPE) == case.EXPECTED_WT_SHA256
    mutant = case.build_mutant()
    assert mutant[6] == "V"
    assert case.sha256_text(mutant) == case.EXPECTED_MUTANT_SHA256