35 lines
986 B
Python
35 lines
986 B
Python
import pytest
|
|
from rdkit import Chem
|
|
|
|
from macro_lactone_toolkit.validation.isotope_utils import (
|
|
build_fragment_with_isotope,
|
|
extract_isotope_position,
|
|
)
|
|
|
|
|
|
def test_build_fragment_with_isotope():
|
|
# Create a simple test molecule: ethyl group attached to position 5
|
|
mol = Chem.MolFromSmiles("CCCC(CC)CCC") # Position 4 (0-indexed) has ethyl
|
|
assert mol is not None
|
|
|
|
side_chain_atoms = [4, 5] # The ethyl group atoms
|
|
side_chain_start = 4
|
|
ring_atom = 3
|
|
cleavage_pos = 5
|
|
|
|
labeled, plain, bond_type = build_fragment_with_isotope(
|
|
mol, side_chain_atoms, side_chain_start, ring_atom, cleavage_pos
|
|
)
|
|
|
|
assert labeled is not None
|
|
assert plain is not None
|
|
assert bond_type == "SINGLE"
|
|
|
|
# Check isotope was set
|
|
extracted_pos = extract_isotope_position(labeled)
|
|
assert extracted_pos == cleavage_pos
|
|
|
|
# Plain should have no isotope
|
|
extracted_plain = extract_isotope_position(plain)
|
|
assert extracted_plain == 0
|