FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit 59bc765b authored by Mark Driver's avatar Mark Driver
Browse files

implement tests and fix methods to give expected behaviour.

parent ee378228
No related branches found
No related tags found
No related merge requests found
......@@ -53,7 +53,7 @@ def read_polynomial_files(poly_filename_list, **kwargs):
"""
return polyio.read_poly_data_to_dict(poly_filename_list, **kwargs)
PURE_SOLVENT_INFO = read_polynomial_files(pureinf.get_polynomial_filenames(), suffix="free_poly_split_fit.csv")
PURE_SOLVENT_INFO = read_polynomial_files(pureinf.get_polynomial_filenames(), suffix="free_poly_fit_split.csv")
def compare_all_solvents(poly_filename_list, output_dir, output_filename):
"""
......@@ -163,7 +163,7 @@ def write_frame_to_file(dframe, output_filename):
None.
"""
dframe.to_csv(output_filename, sep="\t")
dframe.to_csv(output_filename, sep="\t", header=True)
def extract_comparison_to_pure_solvents(similarity_dframe, solv_id):
"""
......@@ -181,7 +181,7 @@ def extract_comparison_to_pure_solvents(similarity_dframe, solv_id):
DESCRIPTION.
"""
return similarity_dframe.loc[solv_id, PURE_SOLVENT_INFO.keys()].sort()
return similarity_dframe.loc[solv_id, PURE_SOLVENT_INFO.keys()].sort_values()
def calculate_similarity_matrix(poly_data_by_id):
"""
......
......@@ -34,6 +34,7 @@ LOGGER.setLevel(logging.WARN)
class SimilarityAnalysisTestCase(unittest.TestCase):
"""Test case for similarity analysis."""
def setUp(self):
"""Set up before tests.
......@@ -42,6 +43,16 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
parent_directory = pathlib.Path(__file__).parents[1]
self.expected_free_poly = (parent_directory /"resources" / "expected_parsedfreepoly.csv").absolute().as_posix()
self.expected_matrix_file = (parent_directory/ "resources"/ "expectd_matrix.csv").absolute().as_posix()
self.example_poly_data = simanalysis.read_polynomial_files([self.expected_free_poly], suffix="freepoly.csv",
temperature_dir=True)
self.example_with_pure_data = {**simanalysis.PURE_SOLVENT_INFO,
**self.example_poly_data}
self.example_matrix = simanalysis.calculate_similarity_matrix(self.example_with_pure_data)
self.actual_matrix_file = "actual_matrix.csv"
self.actual_series_file = "resourcesexpected_parsedfreepoly.csv.csv"
def tearDown(self):
"""Clean up after tests.
......@@ -58,7 +69,26 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
self.fail("not implemented")
expected_dict = {'resourcesexpected,parsed':{8: {'negative': {'RMSE': 0.0137444779,
'coefficients': np.array([-2.60836624e-01, 4.65295250e-01, 2.57637417e-01, 2.19491128e-01,
4.20087475e-02, 4.02289353e-03, 2.12247938e-04, 5.89243946e-06,
6.73443996e-08]),
'covar': 0.0379710451935,
'order': 8},
'positive': {'RMSE': 0.008907316,
'coefficients': np.array([-2.52075337e-01, -7.07009850e-01, 9.86359325e-01, -1.40859321e+00,
5.04060101e-01, -9.17970326e-02, 9.28812463e-03, -4.97458825e-04,
1.10198937e-05]),
'covar': 0.008013368123414,
'order': 8}}}}
actual_dict = self.example_poly_data
self.assertListEqual(list(expected_dict.keys()), list(actual_dict.keys()))
for region, info_dict in actual_dict['resourcesexpected,parsed'][8].items():
for key, value in info_dict.items():
if key == "coefficients":
np.testing.assert_allclose(value, expected_dict['resourcesexpected,parsed'][8][region][key])
else:
self.assertEqual(value, expected_dict['resourcesexpected,parsed'][8][region][key])
def test_compare_all_solvents(self):
"""Test
......@@ -67,7 +97,10 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
self.fail("not implemented")
simanalysis.compare_all_solvents([self.expected_free_poly], "", self.actual_matrix_file)
self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
actual_dataframe = pandas.read_csv(self.actual_matrix_file, sep="\t",header=0,index_col=0)
self.assertEqual((262,262), actual_dataframe.shape)
def test_compare_with_pure_solvents(self):
"""Test
......@@ -76,7 +109,11 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
self.fail("not implemented")
simanalysis.compare_with_pure_solvents([self.expected_free_poly], "")
self.assertTrue(pathlib.Path(self.actual_series_file).is_file())
self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
actual_dataframe = pandas.read_csv(self.actual_series_file, sep="\t",header=0,index_col=0)
self.assertEqual((261,1), actual_dataframe.shape)
def test_compare_solvent_list(self):
"""Test
......@@ -85,7 +122,10 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
self.fail("not implemented")
simanalysis.compare_solvent_list([self.expected_free_poly], "", self.actual_matrix_file)
self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
actual_dataframe = pandas.read_csv(self.actual_matrix_file, sep="\t",header=0,index_col=0)
self.assertEqual((1,1), actual_dataframe.shape)
def test_write_frame_to_file(self):
"""Test
......@@ -94,7 +134,8 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
self.fail("not implemented")
simanalysis.write_frame_to_file(self.example_matrix, self.actual_matrix_file)
self.assertTrue(pathlib.Path(self.actual_matrix_file).is_file())
def test_extract_comparison_to_pure_solvents(self):
"""Test
......@@ -103,13 +144,22 @@ class SimilarityAnalysisTestCase(unittest.TestCase):
None.
"""
self.fail("not implemented")
extracted_data = simanalysis.extract_comparison_to_pure_solvents(self.example_matrix, "resourcesexpected,parsed")
expected_top5 = pandas.Series(data={"formamide":0.07340402,
"hydrogen peroxide": 0.12358179,
"methanesulfonic acid": 0.12495022,
"ethylene glycol": 0.13908444,
"1,2-butanediol": 0.14388483}, name="resourcesexpected,parsed")
np.testing.assert_allclose(expected_top5.values, extracted_data[:5].values)
self.assertListEqual(expected_top5.index.to_list(), extracted_data[:5].index.to_list())
def test_calculate_similarity_matrix(self):
"""Test
"""Test expected dataframe produced.
Returns
-------
None.
"""
self.fail("not implemented")
\ No newline at end of file
actual_dataframe = self.example_matrix
self.assertEqual((262,262), actual_dataframe.shape)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment