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"
|