diff --git a/src/mvesuvio/analysis_reduction.py b/src/mvesuvio/analysis_reduction.py index 5d7d56ee..a18966f7 100644 --- a/src/mvesuvio/analysis_reduction.py +++ b/src/mvesuvio/analysis_reduction.py @@ -216,11 +216,9 @@ def calculate_h_ratio(self): return None # Hydrogen present - # intensities = np.array([p.mean_intensity for p in self._profiles.values()]) - intensities = self.mean_intensity_ratios - # masses = np.array([p.mass for p in self._profiles.values()]) - + intensities = self._mean_intensity_ratios sorted_intensities = intensities[np.argsort(self._masses)] + return sorted_intensities[0] / sorted_intensities[1] diff --git a/tests/unit/analysis/test_analysis_reduction.py b/tests/unit/analysis/test_analysis_reduction.py new file mode 100644 index 00000000..378655e3 --- /dev/null +++ b/tests/unit/analysis/test_analysis_reduction.py @@ -0,0 +1,36 @@ +import unittest +import numpy as np +import numpy.testing as nptest +from mock import MagicMock +from mvesuvio.analysis_reduction import AnalysisRoutine +from mantid.simpleapi import CreateWorkspace, DeleteWorkspace + + +class TestAnalysisFunctions(unittest.TestCase): + def setUp(self): + pass + + def test_calculate_h_ratio_masses_ordered(self): + alg = AnalysisRoutine() + alg._mean_intensity_ratios = np.array([0.91175, 0.06286, 0.00732, 0.01806]) + alg._masses = np.array([1.0079, 12.0, 16.0, 27.0]) + h_ratio = alg.calculate_h_ratio() + self.assertAlmostEqual(14.504454343, h_ratio) + + def test_calculate_h_ratio_masses_unordered(self): + alg = AnalysisRoutine() + alg._mean_intensity_ratios = np.array([0.00732, 0.06286, 0.01806, 0.91175]) + alg._masses = np.array([16.0, 12.0, 27.0, 1.0079]) + h_ratio = alg.calculate_h_ratio() + self.assertAlmostEqual(14.504454343, h_ratio) + + def test_calculate_h_ratio_hydrogen_missing(self): + alg = AnalysisRoutine() + alg._mean_intensity_ratios = np.array([0.00732, 0.06286, 0.01806]) + alg._masses = np.array([16.0, 12.0, 27.0]) + h_ratio = alg.calculate_h_ratio() + self.assertAlmostEqual(None, h_ratio) + + +if __name__ == "__main__": + unittest.main()