stk.Bromo( bromine=stk.Br(3), atom=stk.C(2), bonders=(stk.C(2), ), deleters=(stk.Br(3), ), ), stk.Bromo( bromine=stk.Br(6), atom=stk.C(5), bonders=(stk.C(5), ), deleters=(stk.Br(6), ), ), ), ), lambda: CaseData( factory=stk.IodoFactory(), molecule=stk.BuildingBlock('ICC(I)CCI'), functional_groups=( stk.Iodo( iodine=stk.I(0), atom=stk.C(1), bonders=(stk.C(1), ), deleters=(stk.I(0), ), ), stk.Iodo( iodine=stk.I(3), atom=stk.C(2), bonders=(stk.C(2), ), deleters=(stk.I(3), ), ), stk.Iodo(
import numpy as np import pytest import stk from .case_data import CaseData bb1 = stk.BuildingBlock('[C+2][N+]Br', [stk.BromoFactory()]) canonical_bb1 = bb1.with_canonical_atom_ordering() bb2 = stk.BuildingBlock('IS[O+]', [stk.IodoFactory()]) canonical_bb2 = bb2.with_canonical_atom_ordering() @pytest.fixture( params=( lambda: CaseData( molecule=stk.BuildingBlock( smiles='Br[C+2][N+]Cl', functional_groups=[stk.BromoFactory()], placer_ids=(0, ), ), result=stk.BuildingBlock.init( atoms=( stk.Cl(0), stk.Br(1), stk.C(2, 2), stk.N(3, 1), ), bonds=( stk.Bond(stk.Cl(0), stk.N(3, 1), 1),
54, 55, 56, 57, 58, 59, 31, 62, 63, ), stk.BuildingBlock( smiles=('Br[C+]1[C+]2[N+][C+2]C2(Br)[C+](I)[C+' '](I)[C+](Br)[C+]1Br'), functional_groups=[ stk.BromoFactory(), stk.IodoFactory(), stk.FluoroFactory(), ], ): (0, 1, 18, 50, 51), stk.BuildingBlock( smiles=('Br[C+]1[C+]2[S][C+2]C2(Br)[C+](I)[C+]' '(I)[C+](Br)[C+]1Br'), functional_groups=[ stk.BromoFactory(), stk.IodoFactory(), stk.FluoroFactory(), ], ): (2, 16, 34, 49), stk.BuildingBlock( smiles=('Br[C+]1[C+]2[S][O]C2(Br)[C+](I)[C+](I' ')[C+](Br)[C+]1Br'),
functional_groups=( stk.Bromo( bromine=stk.Br(0), atom=stk.C(1, 2), bonders=(stk.C(1, 2), ), deleters=(stk.Br(0), ), ), stk.Bromo( bromine=stk.Br(3), atom=stk.C(2, 2), bonders=(stk.C(2, 2), ), deleters=(stk.Br(3), ), ), ), core_atom_ids=(1, 2), placer_ids=(0, 3), ), lambda: CaseData( building_block=stk.BuildingBlock.init_from_molecule( molecule=stk.BuildingBlock('Br[C+2][C+2]Br'), functional_groups=[stk.IodoFactory()], ), functional_groups=(), core_atom_ids=(0, 1, 2, 3), placer_ids=(0, 1, 2, 3), ), ), ) def init_from_molecule(request) -> CaseData: return request.param()
def get_case_data_2() -> CaseData: bb1 = stk.BuildingBlock('[C+2][N+]Br', [stk.BromoFactory()]) canonical_bb1 = bb1.with_canonical_atom_ordering() bb2 = stk.BuildingBlock('IS[O+]', [stk.IodoFactory()]) canonical_bb2 = bb2.with_canonical_atom_ordering() return CaseData( molecule=stk.ConstructedMolecule( topology_graph=stk.polymer.Linear( building_blocks=(bb1, bb2), repeating_unit='AB', num_repeating_units=1, ), ), result=stk.ConstructedMolecule.init( atoms=( stk.C(0, 2), stk.O(1, 1), stk.N(2, 1), stk.S(3), ), bonds=( stk.Bond(stk.C(0, 2), stk.N(2, 1), 1), stk.Bond(stk.O(1, 1), stk.S(3), 1), stk.Bond(stk.N(2, 1), stk.S(3), 1), ), position_matrix=np.array([]), atom_infos=( stk.AtomInfo( atom=stk.C(0, 2), building_block_atom=stk.C(0, 2), building_block=canonical_bb1, building_block_id=0, ), stk.AtomInfo( atom=stk.O(1, 1), building_block_atom=stk.O(0, 1), building_block=canonical_bb2, building_block_id=1, ), stk.AtomInfo( atom=stk.N(2, 1), building_block_atom=stk.N(2, 1), building_block=canonical_bb1, building_block_id=0, ), stk.AtomInfo( atom=stk.S(3), building_block_atom=stk.S(2), building_block=canonical_bb2, building_block_id=1, ), ), bond_infos=( stk.BondInfo( bond=stk.Bond(stk.C(0, 2), stk.N(2, 1), 1), building_block=canonical_bb1, building_block_id=0, ), stk.BondInfo( bond=stk.Bond(stk.O(1, 1), stk.S(3), 1), building_block=canonical_bb2, building_block_id=1, ), stk.BondInfo( bond=stk.Bond(stk.N(2, 1), stk.S(3), 1), building_block=None, building_block_id=None, ), ), num_building_blocks={ canonical_bb1: 1, canonical_bb2: 1, }, ), )