File size: 828 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
25
26
from __future__ import annotations

from pathlib import Path

from rdkit import Chem
from rdkit.Chem import rdMolDescriptors

from pino.substitution_v11 import load_jsonl


ROOT = Path(__file__).resolve().parents[1]


def test_neofolione_identity_has_matching_acyclic_structure():
    profiles = load_jsonl(ROOT / "data/material_profiles_v11_5.jsonl")
    matches = [row for row in profiles if row.get("cas") == "111-79-5"]

    assert len(matches) == 1
    profile = matches[0]
    mol = Chem.MolFromSmiles(profile["smiles"])
    assert profile["name"] == "Neofolione"
    assert rdMolDescriptors.CalcMolFormula(mol) == "C10H18O2"
    assert mol.GetRingInfo().NumRings() == 0
    assert profile["substantivity_log10_predicted"] is None
    assert profile["substantivity_model"] == "pending_recompute_after_identity_correction"