From 102bb75a2d37e9ec64e6db66c63ca570f0dbece0 Mon Sep 17 00:00:00 2001 From: Robbie Luijben <luijben@astron.nl> Date: Tue, 21 Nov 2023 11:03:16 +0100 Subject: [PATCH] added non-database tests for extracted logic --- .../services/calculated_qualities.py | 23 ++++++++------- ...t_calculated_qualities_without_database.py | 29 +++++++++++++++++++ 2 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 atdb/taskdatabase/tests/test_calculated_qualities_without_database.py diff --git a/atdb/taskdatabase/services/calculated_qualities.py b/atdb/taskdatabase/services/calculated_qualities.py index d956c66f..3cc29eb3 100644 --- a/atdb/taskdatabase/services/calculated_qualities.py +++ b/atdb/taskdatabase/services/calculated_qualities.py @@ -3,6 +3,16 @@ from .common import get_summary_flavour, SummaryFlavour logger = logging.getLogger(__name__) +def rfi_percentage_to_quality(rfi_percent, quality_treshold_moderate, quality_treshold_poor): + quality = None + if rfi_percent >= 0: + quality = "good" + if rfi_percent >= quality_treshold_moderate: + quality = "moderate" + if rfi_percent > quality_treshold_poor: + quality = "poor" + return quality + def calculate_qualities(task, tasks_for_this_sasid, quality_thresholds): """" calculate the quality for this task, but also the quality for all the combined tasks of this sas_id @@ -41,16 +51,6 @@ def calculate_qualities(task, tasks_for_this_sasid, quality_thresholds): # Just continue without it pass - def rfi_percentage_to_quality(rfi_percent, quality_treshold_moderate, quality_treshold_poor): - quality = None - if rfi_percent >= 0: - quality = "good" - if rfi_percent >= quality_treshold_moderate: - quality = "moderate" - if rfi_percent > quality_treshold_poor: - quality = "poor" - return quality - def calculate_quality_sasid(unsaved_task, tasks_for_this_sasid): """ calculate the overall quality per sas_id, based on other tasks with the same sas_id @@ -122,4 +122,5 @@ def calculate_qualities(task, tasks_for_this_sasid, quality_thresholds): except Exception as error: logger.error(error) - return qualities \ No newline at end of file + return qualities + diff --git a/atdb/taskdatabase/tests/test_calculated_qualities_without_database.py b/atdb/taskdatabase/tests/test_calculated_qualities_without_database.py new file mode 100644 index 00000000..7469bdf0 --- /dev/null +++ b/atdb/taskdatabase/tests/test_calculated_qualities_without_database.py @@ -0,0 +1,29 @@ +import unittest +from taskdatabase.services import calculated_qualities as qualities +class TestCalculatedQualities(unittest.TestCase): + + moderate_treshold = 20 + poor_treshold = 50 + + def test_rfi_percentage_to_quality_None(self): + quality = qualities.rfi_percentage_to_quality(-10, TestCalculatedQualities.moderate_treshold, TestCalculatedQualities.poor_treshold) + self.assertIsNone(quality) + + def test_rfi_percentage_to_quality_Zero(self): + quality = qualities.rfi_percentage_to_quality(0, TestCalculatedQualities.moderate_treshold, + TestCalculatedQualities.poor_treshold) + self.assertIsNotNone(quality) + + def test_rfi_percentage_to_quality_Poor(self): + quality = qualities.rfi_percentage_to_quality(60, TestCalculatedQualities.moderate_treshold, TestCalculatedQualities.poor_treshold) + self.assertEqual(quality, "poor") + + def test_rfi_percentage_to_quality_Moderate(self): + quality = qualities.rfi_percentage_to_quality(25, TestCalculatedQualities.moderate_treshold, TestCalculatedQualities.poor_treshold) + self.assertEqual(quality, "moderate") + + def test_rfi_percentage_to_quality_Good(self): + quality = qualities.rfi_percentage_to_quality(19, TestCalculatedQualities.moderate_treshold, TestCalculatedQualities.poor_treshold) + self.assertEqual(quality, "good") + + -- GitLab