From 9deae2f5b825be62ede4ea21fc3c5dc72c3594bd Mon Sep 17 00:00:00 2001 From: Mark Driver <mdd31@cam.ac.uk> Date: Thu, 10 Aug 2017 22:10:11 +0100 Subject: [PATCH] update to use new polynomial calculation method. --- .../polynomialcomparison.py | 10 ++++++--- .../polynomialcomparisontest.py | 22 ++++++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/solventmapcreator/polynomialanalysis/polynomialcomparison.py b/solventmapcreator/polynomialanalysis/polynomialcomparison.py index ee9c0e5..57359d9 100644 --- a/solventmapcreator/polynomialanalysis/polynomialcomparison.py +++ b/solventmapcreator/polynomialanalysis/polynomialcomparison.py @@ -8,7 +8,7 @@ Script for the comparison of the polynomial fits of different solvents. import logging import numpy as np -import numpy.polynomial.polynomial as poly +import solventmapcreator.polynomialanalysis.polynomialvaluecalculator as polyvalcalc import scipy.spatial.distance as sciptdist logging.basicConfig() @@ -128,10 +128,14 @@ def calculate_polynomial_values_from_dict(x_values, solvent_info_dict, polynomia def get_polynomial_coefficients(solvent_info_dict, polynomial_order): """This returns the polynomial coefficients for the selected order. """ - return solvent_info_dict[polynomial_order]["coefficients"] + if "positive" in solvent_info_dict[polynomial_order].keys(): + return {"positive":solvent_info_dict[polynomial_order]["positive"]["coefficients"], + "negative":solvent_info_dict[polynomial_order]["negative"]["coefficients"]} + else: + return solvent_info_dict[polynomial_order]["coefficients"] def calculate_polynomial_values(x_values, polynomial_coefficients): """This returns the values for the given polynomial function coefficients. """ - return poly.polyval(x_values, polynomial_coefficients) + return polyvalcalc.calculate_polynomial_values(x_values, polynomial_coefficients) diff --git a/solventmapcreator/test/polynomialanalysistest/polynomialcomparisontest.py b/solventmapcreator/test/polynomialanalysistest/polynomialcomparisontest.py index 999d8fc..84fb2fa 100644 --- a/solventmapcreator/test/polynomialanalysistest/polynomialcomparisontest.py +++ b/solventmapcreator/test/polynomialanalysistest/polynomialcomparisontest.py @@ -22,20 +22,30 @@ class PolynomialComparisonTestCase(unittest.TestCase): """Set up before tests """ self.poly_data_by_solvent_id = {"poly_fit":{2:{"coefficients":np.array([0.0, - 0.0, 1.0]), + 0.0, 1.0]), "RMSE":0.0254303, "order":2, "covar":0.0008143}}, "poly_fit2":{2:{"coefficients":np.array([1.0, - 0.0, 1.0]), + 0.0, 1.0]), "RMSE":0.0354303, "order":2, "covar":0.0008143}}, "poly_fit3":{2:{"coefficients":np.array([0.0, - 0.0, 2.0]), + 0.0, 2.0]), "RMSE":0.0354303, "order":2, "covar":0.0008143}}} + self.poly_data2 = {"poly_fit":{2:{"positive":{"coefficients":np.array([0.0, + 0.0, 1.0]), + "RMSE":0.0254303, + "order":2, + "covar":0.0008143}}, + "negative":{"coefficients":np.array([0.0, + 0.0, 1.0]), + "RMSE":0.0254303, + "order":2, + "covar":0.0008143}}} self.x_values = np.array([-2.0, -1.0, 0.0, 1.0, 2.0]) self.poly_values_dict = {"poly_fit":np.array([4.0, 1.0, 0.0, 1.0, 4.0]), "poly_fit2":np.array([5.0, 2.0, 1.0, 2.0, 5.0]), @@ -166,6 +176,12 @@ class PolynomialComparisonTestCase(unittest.TestCase): expected_coefficients = np.array([0.0, 0.0, 1.0]) actual_coefficients = polynomialcomparison.get_polynomial_coefficients(self.poly_data_by_solvent_id["poly_fit"], 2) np.testing.assert_array_almost_equal(expected_coefficients, actual_coefficients) + expected_coefficient_dict = {"positive":np.array([0.0, 0.0, 1.0]), + "negative":np.array([0.0, 0.0, 1.0])} + actual_coefficent_dict = polynomialcomparison.get_polynomial_coefficients(self.poly_data2["poly_fit"], 2) + for key in expected_coefficient_dict.keys(): + np.testing.assert_array_almost_equal(expected_coefficient_dict[key], + actual_coefficent_dict[key]) def test_calculate_polynomial_values(self): """Test to see if expected values are returned. """ -- GitLab