From c715edd7f8b323b9214c4f9098f33e06f164af2a Mon Sep 17 00:00:00 2001 From: Mark Driver <mdd31@cantab.ac.uk> Date: Tue, 22 Dec 2020 19:39:28 +0100 Subject: [PATCH] update to Phase, Phases and System to get name inchikey mapping. This is required groundwork to solve Issue #12. --- phasecalculator/classes/phase.py | 14 ++++++++++++++ phasecalculator/classes/phases.py | 14 ++++++++++++++ phasecalculator/classes/system.py | 11 +++++++++++ phasecalculator/test/classestest/phasestest.py | 11 +++++++++++ phasecalculator/test/classestest/phasetest.py | 11 +++++++++++ phasecalculator/test/classestest/systemtest.py | 12 ++++++++++++ 6 files changed, 73 insertions(+) diff --git a/phasecalculator/classes/phase.py b/phasecalculator/classes/phase.py index 741b753..41ee8f2 100755 --- a/phasecalculator/classes/phase.py +++ b/phasecalculator/classes/phase.py @@ -203,3 +203,17 @@ class Phase(object): """ return [molecule.ssip_file_loc for molecule in self.molecule_list] + + def get_name_inchikey_map(self): + """Get the name inchikey mapping for all molecules in the phases. + + Returns + ------- + name_inchikey_map : dict + name: inchikey pairings for molecules. + + """ + name_inchikey_map = {} + for molecule in self.molecule_list: + name_inchikey_map[molecule.name] = molecule.inchikey + return name_inchikey_map diff --git a/phasecalculator/classes/phases.py b/phasecalculator/classes/phases.py index 67527cd..6b04fed 100755 --- a/phasecalculator/classes/phases.py +++ b/phasecalculator/classes/phases.py @@ -181,3 +181,17 @@ class Phases(object): for phase in self.phase_list: ssip_file_locations.extend(phase.get_ssip_file_locations()) return set(ssip_file_locations) + + def get_name_inchikey_map(self): + """Get the name inchikey mapping for all molecules in the phases. + + Returns + ------- + name_inchikey_map : dict + name: inchikey pairings for molecules. + + """ + name_inchikey_map = {} + for phase in self.phase_list: + name_inchikey_map.update(phase.get_name_inchikey_map()) + return name_inchikey_map \ No newline at end of file diff --git a/phasecalculator/classes/system.py b/phasecalculator/classes/system.py index 33384d3..a09412c 100755 --- a/phasecalculator/classes/system.py +++ b/phasecalculator/classes/system.py @@ -268,6 +268,17 @@ class System(object): """ return self.phases.get_ssip_file_locations() + + def get_name_inchikey_map(self): + """Get the name inchikey mapping for all molecules in the phases. + + Returns + ------- + name_inchikey_map : dict + name: inchikey pairings for molecules. + + """ + return self.phases.get_name_inchikey_map() def calc_fgip(self): """Boolean indicating whether to Calculate FGIP information for Phases. diff --git a/phasecalculator/test/classestest/phasestest.py b/phasecalculator/test/classestest/phasestest.py index 761dd6d..6eb8850 100755 --- a/phasecalculator/test/classestest/phasestest.py +++ b/phasecalculator/test/classestest/phasestest.py @@ -145,3 +145,14 @@ class PhasesTestCase(unittest.TestCase): expected_set = {self.molecule.ssip_file_loc} actual_set = self.phases.get_ssip_file_locations() self.assertSetEqual(expected_set, actual_set) + def test_get_name_inchikey_map(self): + """Test expected name: inchikey mapping is returned. + + Returns + ------- + None. + + """ + expected_dict = {'water': 'XLYOFNOQVPJJNP-UHFFFAOYSA-N'} + actual_dict = self.phases.get_name_inchikey_map() + self.assertDictEqual(expected_dict, actual_dict) diff --git a/phasecalculator/test/classestest/phasetest.py b/phasecalculator/test/classestest/phasetest.py index 1aeaa69..f650ece 100755 --- a/phasecalculator/test/classestest/phasetest.py +++ b/phasecalculator/test/classestest/phasetest.py @@ -138,3 +138,14 @@ class PhaseTestCase(unittest.TestCase): expected_list = [self.molecule.ssip_file_loc] actual_list = self.phase.get_ssip_file_locations() self.assertListEqual(expected_list, actual_list) + def test_get_name_inchikey_map(self): + """Test expected name: inchikey mapping is returned. + + Returns + ------- + None. + + """ + expected_dict = {'water': 'XLYOFNOQVPJJNP-UHFFFAOYSA-N'} + actual_dict = self.phase.get_name_inchikey_map() + self.assertDictEqual(expected_dict, actual_dict) \ No newline at end of file diff --git a/phasecalculator/test/classestest/systemtest.py b/phasecalculator/test/classestest/systemtest.py index 2ca3cb4..e02dbeb 100755 --- a/phasecalculator/test/classestest/systemtest.py +++ b/phasecalculator/test/classestest/systemtest.py @@ -222,6 +222,18 @@ class SystemTestCase(unittest.TestCase): expected_set = {self.molecule.ssip_file_loc} actual_set = self.system.get_ssip_file_locations() self.assertSetEqual(expected_set, actual_set) + + def test_get_name_inchikey_map(self): + """Test expected name: inchikey mapping is returned. + + Returns + ------- + None. + + """ + expected_dict = {'water': 'XLYOFNOQVPJJNP-UHFFFAOYSA-N'} + actual_dict = self.system.get_name_inchikey_map() + self.assertDictEqual(expected_dict, actual_dict) def test_calc_fgip(self): """Test expected bool returned. -- GitLab