コード例 #1
0
class TestReact(unittest.TestCase):
    def setUp(self):
        """
        A function run before each unit test in this class.
        """

        # load kinetics database
        db_path = settings['database.directory']
        self.database = RMGDatabase()

        # forbidden structure loading
        self.database.loadForbiddenStructures(
            os.path.join(db_path, 'forbiddenStructures.py'))
        # kinetics family loading
        self.database.loadKinetics(os.path.join(db_path, 'kinetics'),
                                   kineticsFamilies=[
                                       'R_Recombination', 'H_Abstraction',
                                       '1,2_Insertion_carbene'
                                   ],
                                   reactionLibraries=[])

    def test_react_fragments1(self):

        frag1 = afm.fragment.Fragment(
            label='frag1').from_SMILES_like_string('c1ccccc1CCCR')
        fragment_tuple = (frag1, )
        reactions = afm.react.react_fragments(
            self.database.kinetics,
            fragment_tuple,
            only_families=['R_Recombination'],
            prod_resonance=False)

        self.assertTrue(len(reactions) == 28)

    def test_react_fragments2(self):

        frag1 = afm.fragment.Fragment(
            label='frag1').from_SMILES_like_string('c1ccccc1CCCR')
        frag2 = afm.fragment.Fragment(
            label='frag2').from_SMILES_like_string('[CH2]CR')
        fragment_tuple = (frag1, frag2)
        reactions = afm.react.react_fragments(self.database.kinetics,
                                              fragment_tuple,
                                              only_families=['H_Abstraction'],
                                              prod_resonance=False)

        self.assertTrue(len(reactions) == 11)

    def test_generate_reactions_from_families1(self):

        frag1 = afm.fragment.Fragment(
            label='frag1').from_SMILES_like_string('CC')
        spec1 = Species(molecule=[frag1])
        spec_tuple = (spec1, )

        reactions = self.database.kinetics.generate_reactions_from_families(
            spec_tuple)

        self.assertTrue(len(reactions) == 3)

    def test_generate_reactions_from_families2(self):

        frag1 = afm.fragment.Fragment(
            label='frag1').from_SMILES_like_string('CCR')
        spec1 = Species(molecule=[frag1])
        spec_tuple = (spec1, )

        reactions = self.database.kinetics.generate_reactions_from_families(
            spec_tuple)

        self.assertTrue(len(reactions) == 4)