Skip to content

Commit 5db59a0

Browse files
committed
Do not allow default arguments in the calculator
1 parent 9969572 commit 5db59a0

File tree

2 files changed

+32
-22
lines changed

2 files changed

+32
-22
lines changed

lung_cancer_screening/calculators/plco.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ class Plco:
1212
FAMILY_HISTORY_OF_CANCER_COEFFICIENT = Decimal('0.587185')
1313

1414
def __init__(self,
15-
age=None,
16-
bmi=None,
17-
copd_enphysema_or_chronic_bronchitis=None,
18-
personal_history_of_cancer=None, family_history_of_cancer=None):
15+
age,
16+
bmi,
17+
copd_enphysema_or_chronic_bronchitis,
18+
personal_history_of_cancer,
19+
family_history_of_cancer):
1920
self.age = Decimal(str(age or 0))
2021
self.bmi = Decimal(str(bmi or 0))
2122
self.copd_enphysema_or_chronic_bronchitis = copd_enphysema_or_chronic_bronchitis
@@ -31,22 +32,22 @@ def bmi_contribution_to_estimate(self):
3132
def copd_enphysema_or_chronic_bronchitis_contribution_to_estimate(self):
3233
if self.copd_enphysema_or_chronic_bronchitis is None:
3334
raise self.InvalidValueError(
34-
"copd_enphysema_or_chronic_bronchitis must be true or false")
35+
"copd_enphysema_or_chronic_bronchitis must be set")
3536

3637
return self.copd_enphysema_or_chronic_bronchitis * self.COPD_ENPHYSEMA_OR_CHRONIC_BRONCHITIS_COEFFICIENT
3738

3839

3940
def personal_history_of_cancer_contribution_to_estimate(self):
4041
if self.personal_history_of_cancer is None:
4142
raise self.InvalidValueError(
42-
"personal_history_of_cancer must be true or false")
43+
"personal_history_of_cancer must be set")
4344

4445
return self.personal_history_of_cancer * self.PERSONAL_HISTORY_OF_CANCER_COEFFICIENT
4546

4647
def family_history_of_cancer_contribution_to_estimate(self):
4748
if self.family_history_of_cancer is None:
4849
raise self.InvalidValueError(
49-
"family_history_of_cancer must be true or false")
50+
"family_history_of_cancer must be set")
5051

5152
return self.family_history_of_cancer * self.FAMILY_HISTORY_OF_CANCER_COEFFICIENT
5253

lung_cancer_screening/calculators/tests/test_plco.py

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,103 +4,112 @@
44
from lung_cancer_screening.calculators.plco import Plco
55

66
class TestPlco(TestCase):
7+
def setUp(self):
8+
self.defaultArgs = {
9+
"age": 62,
10+
"bmi": 27,
11+
"copd_enphysema_or_chronic_bronchitis": False,
12+
"personal_history_of_cancer": False,
13+
"family_history_of_cancer": False
14+
}
15+
716
def test_age_in_years_contribution_to_estimate_when_age_is_none(self):
8-
calculator = Plco(age=None)
17+
calculator = Plco(**dict(self.defaultArgs, age=None))
918
result = calculator.age_in_years_contribution_to_estimate()
1019

1120
self.assertEqual(result, Decimal('-4.8289816'))
1221

1322
def test_age_in_years_contribution_to_estimate_at_74(self):
14-
calculator = Plco(age=74)
23+
calculator = Plco(**dict(self.defaultArgs, age=74))
1524
result = calculator.age_in_years_contribution_to_estimate()
1625

1726
self.assertEqual(result, Decimal('0.9346416'))
1827

1928
def test_age_in_years_contribution_to_estimate_at_62(self):
20-
calculator = Plco(age=58)
29+
calculator = Plco(**dict(self.defaultArgs, age=58))
2130
result = calculator.age_in_years_contribution_to_estimate()
2231

2332
self.assertEqual(result, Decimal('-0.3115472'))
2433

2534
def test_bmi_contribution_to_estimate_when_bmi_is_none(self):
26-
calculator = Plco(bmi=None)
35+
calculator = Plco(**dict(self.defaultArgs, bmi=None))
2736
result = calculator.bmi_contribution_to_estimate()
2837

2938
self.assertEqual(result, Decimal('0.7403238'))
3039

3140
def test_bmi_contribution_to_estimate_when_bmi_is_23_point_5(self):
32-
calculator = Plco(bmi=23.5)
41+
calculator = Plco(**dict(self.defaultArgs, bmi=23.5))
3342
result = calculator.bmi_contribution_to_estimate()
3443

3544
self.assertEqual(result, Decimal('0.0959679'))
3645

3746
def test_bmi_contribution_to_estimate_when_bmi_is_a_long_decimal(self):
38-
calculator = Plco(bmi="26.4749212")
47+
calculator = Plco(**dict(self.defaultArgs, bmi="26.4749212"))
3948
result = calculator.bmi_contribution_to_estimate()
4049

4150
self.assertEqual(result, Decimal('0.01439734564872'))
4251

4352
def test_copd_enphysema_or_chronic_bronchitiscontribution_to_estimate_when_none(self):
44-
calculator = Plco(copd_enphysema_or_chronic_bronchitis=None)
53+
calculator = Plco(**dict(self.defaultArgs, copd_enphysema_or_chronic_bronchitis=None))
4554

4655
self.assertRaises(
4756
Plco.InvalidValueError,
4857
calculator.copd_enphysema_or_chronic_bronchitis_contribution_to_estimate
4958
)
5059

5160
def test_copd_enphysema_or_chronic_bronchitiscontribution_to_estimate_when_true(self):
52-
calculator = Plco(copd_enphysema_or_chronic_bronchitis=True)
61+
calculator = Plco(**dict(self.defaultArgs, copd_enphysema_or_chronic_bronchitis=True))
5362

5463
result = calculator.copd_enphysema_or_chronic_bronchitis_contribution_to_estimate()
5564

5665
self.assertEqual(result, Decimal('0.3553063'))
5766

5867
def test_copd_enphysema_or_chronic_bronchitiscontribution_to_estimate_when_false(self):
59-
calculator = Plco(copd_enphysema_or_chronic_bronchitis=False)
68+
calculator = Plco(**dict(self.defaultArgs, copd_enphysema_or_chronic_bronchitis=False))
6069

6170
result = calculator.copd_enphysema_or_chronic_bronchitis_contribution_to_estimate()
6271

6372
self.assertEqual(result, Decimal('0'))
6473

6574
def test_personal_history_of_cancer_contribution_to_estimate_when_none(self):
66-
calculator = Plco(personal_history_of_cancer=None)
75+
calculator = Plco(**dict(self.defaultArgs, personal_history_of_cancer=None))
6776

6877
self.assertRaises(
6978
Plco.InvalidValueError,
7079
calculator.personal_history_of_cancer_contribution_to_estimate
7180
)
7281

7382
def test_personal_history_of_cancer_contribution_to_estimate_when_true(self):
74-
calculator = Plco(personal_history_of_cancer=True)
83+
calculator = Plco(**dict(self.defaultArgs, personal_history_of_cancer=True))
7584

7685
result = calculator.personal_history_of_cancer_contribution_to_estimate()
7786

7887
self.assertEqual(result, Decimal('0.4589971'))
7988

8089
def test_personal_history_of_cancer_contribution_to_estimate_when_false(self):
81-
calculator = Plco(personal_history_of_cancer=False)
90+
calculator = Plco(**dict(self.defaultArgs, personal_history_of_cancer=False))
8291

8392
result = calculator.personal_history_of_cancer_contribution_to_estimate()
8493

8594
self.assertEqual(result, Decimal('0'))
8695

8796
def test_family_history_of_cancer_contribution_to_estimate_when_none(self):
88-
calculator = Plco(family_history_of_cancer=None)
97+
calculator = Plco(**dict(self.defaultArgs, family_history_of_cancer=None))
8998

9099
self.assertRaises(
91100
Plco.InvalidValueError,
92101
calculator.family_history_of_cancer_contribution_to_estimate
93102
)
94103

95104
def test_family_history_of_cancer_contribution_to_estimate_when_true(self):
96-
calculator = Plco(family_history_of_cancer=True)
105+
calculator = Plco(**dict(self.defaultArgs, family_history_of_cancer=True))
97106

98107
result = calculator.family_history_of_cancer_contribution_to_estimate()
99108

100109
self.assertEqual(result, Decimal('0.587185'))
101110

102111
def test_family_history_of_cancer_contribution_to_estimate_when_false(self):
103-
calculator = Plco(family_history_of_cancer=False)
112+
calculator = Plco(**dict(self.defaultArgs, family_history_of_cancer=False))
104113

105114
result = calculator.family_history_of_cancer_contribution_to_estimate()
106115

0 commit comments

Comments
 (0)