Example #1
0
 def testLoadFamilies(self):
     """
     Test that the loadFamilies function raises the correct exceptions
     """
     path = os.path.join(settings['database.directory'],'kinetics','families')
     database = KineticsDatabase()
     
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families='random')
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families=['!H_Abstraction','Disproportionation'])
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families=['fake_family'])
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families=[])
Example #2
0
 def testLoadFamilies(self):
     """
     Test that the loadFamilies function raises the correct exceptions
     """
     path = os.path.join(settings['database.directory'],'kinetics','families')
     database = KineticsDatabase()
     
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families='random')
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families=['!H_Abstraction','Disproportionation'])
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families=['fake_family'])
     with self.assertRaises(DatabaseError):
         database.loadFamilies(path, families=[])
Example #3
0
class TestFamily(unittest.TestCase):
    def setUp(self):
        """
        A function run before each unit test in this class.
        """
        # Set up a dummy database
        self.database = KineticsDatabase()
        self.database.loadFamilies(os.path.join(
            settings['test_data.directory'],
            'testing_database/kinetics/families'),
                                   families=['intra_H_migration'])
        self.family = self.database.families['intra_H_migration']

    def testGetBackboneRoots(self):
        """
        Test the getBackboneRoots() function
        """
        backbones = self.family.getBackboneRoots()
        self.assertEquals(backbones[0].label, "RnH")

    def testGetEndRoots(self):
        """
        Test the getEndRoots() function
        """
        ends = self.family.getEndRoots()
        self.assertEquals(len(ends), 2)
        self.assertIn(self.family.groups.entries["Y_rad_out"], ends)
        self.assertIn(self.family.groups.entries["XH_out"], ends)

    def testGetTopLevelGroups(self):
        """
        Test the getTopLevelGroups() function
        """
        topGroups = self.family.getTopLevelGroups(
            self.family.groups.entries["RnH"])
        self.assertEquals(len(topGroups), 2)
        self.assertIn(self.family.groups.entries["R5Hall"], topGroups)
        self.assertIn(self.family.groups.entries["R6Hall"], topGroups)
Example #4
0
class TestFamily(unittest.TestCase):


    def setUp(self):
        """
        A function run before each unit test in this class.
        """
        # Set up a dummy database
        dir_path = os.path.dirname(os.path.realpath(__file__))
        self.database = KineticsDatabase()
        self.database.loadFamilies(os.path.join(dir_path,"family_test_data"), families=['intra_H_migration'])
        self.family = self.database.families['intra_H_migration']

    def testGetBackboneRoots(self):
        """
        Test the getBackboneRoots() function
        """
        backbones = self.family.getBackboneRoots()
        self.assertEquals(backbones[0].label, "RnH")

    def testGetEndRoots(self):
        """
        Test the getEndRoots() function
        """
        ends = self.family.getEndRoots()
        self.assertEquals(len(ends), 2)
        self.assertIn(self.family.groups.entries["Y_rad_out"], ends)
        self.assertIn(self.family.groups.entries["XH_out"], ends)

    def testGetTopLevelGroups(self):
        """
        Test the getTopLevelGroups() function
        """
        topGroups = self.family.getTopLevelGroups(self.family.groups.entries["RnH"])
        self.assertEquals(len(topGroups), 2)
        self.assertIn(self.family.groups.entries["R5Hall"], topGroups)
        self.assertIn(self.family.groups.entries["R6Hall"], topGroups)
Example #5
0
    def test_load_families_incorrect(self):
        """Test invalid methods for loading kinetics families"""
        path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families')
        database = KineticsDatabase()
        database.loadRecommendedFamiliesList(os.path.join(path, 'recommended.py'))

        with self.assertRaises(DatabaseError):
            database.loadFamilies(path, families='random')
        with self.assertRaises(DatabaseError):
            database.loadFamilies(path, families=['!H_Abstraction','Disproportionation'])
        with self.assertRaises(DatabaseError):
            database.loadFamilies(path, families=['fake_family'])
Example #6
0
    def test_load_families_correct(self):
        """Test valid methods for loading kinetics families."""
        path = os.path.join(settings['test_data.directory'],
                            'testing_database', 'kinetics', 'families')
        database = KineticsDatabase()
        database.loadRecommendedFamiliesList(
            os.path.join(path, 'recommended.py'))

        try:
            database.loadFamilies(path, families=[])
        except DatabaseError:
            self.fail("Unable to load families using list []")

        try:
            database.loadFamilies(path, families='none')
        except DatabaseError:
            self.fail("Unable to load families using keyword 'none'")

        try:
            database.loadFamilies(path, families='default')
        except DatabaseError:
            self.fail("Unable to load families using keyword 'default'")

        try:
            database.loadFamilies(path, families=['default', 'pah'])
        except DatabaseError:
            self.fail("Unable to load families using list ['default', 'pah']")

        try:
            database.loadFamilies(path, families=['R_Addition_MultipleBond'])
        except DatabaseError:
            self.fail(
                "Unable to load families using list ['R_Addition_MultipleBond']"
            )

        try:
            database.loadFamilies(
                path, families=['!H_Abstraction', '!Disproportionation'])
        except DatabaseError:
            self.fail(
                "Unable to load families using list ['!H_Abstraction', '!Disproportionation']"
            )

        try:
            database.loadFamilies(path, families='!pah')
        except DatabaseError:
            self.fail("Unable to load families using keyword '!pah'")

        try:
            database.loadFamilies(path, families=['H_Abstraction', 'pah'])
        except DatabaseError:
            self.fail(
                "Unable to load families using list ['H_Abstraction', 'pah']")
    def test_load_families_correct(self):
        """Test valid methods for loading kinetics families."""
        path = os.path.join(settings['test_data.directory'], 'testing_database', 'kinetics', 'families')
        database = KineticsDatabase()
        database.loadRecommendedFamiliesList(os.path.join(path, 'recommended.py'))

        try:
            database.loadFamilies(path, families=[])
        except DatabaseError:
            self.fail("Unable to load families using list []")

        try:
            database.loadFamilies(path, families='none')
        except DatabaseError:
            self.fail("Unable to load families using keyword 'none'")

        try:
            database.loadFamilies(path, families='default')
        except DatabaseError:
            self.fail("Unable to load families using keyword 'default'")

        try:
            database.loadFamilies(path, families=['default', 'pah'])
        except DatabaseError:
            self.fail("Unable to load families using list ['default', 'pah']")

        try:
            database.loadFamilies(path, families=['R_Addition_MultipleBond'])
        except DatabaseError:
            self.fail("Unable to load families using list ['R_Addition_MultipleBond']")

        try:
            database.loadFamilies(path, families=['!H_Abstraction', '!Disproportionation'])
        except DatabaseError:
            self.fail("Unable to load families using list ['!H_Abstraction', '!Disproportionation']")

        try:
            database.loadFamilies(path, families='!pah')
        except DatabaseError:
            self.fail("Unable to load families using keyword '!pah'")

        try:
            database.loadFamilies(path, families=['H_Abstraction', 'pah'])
        except DatabaseError:
            self.fail("Unable to load families using list ['H_Abstraction', 'pah']")