Skip to content

Commit ec506df

Browse files
spencer51324312cmccandless
authored andcommitted
allergies: update tests to v2.0.0 (exercism#1777)
* Fixes exercism#1756 Updated it for canonical-data v2.0.0
1 parent 8a23959 commit ec506df

3 files changed

Lines changed: 134 additions & 35 deletions

File tree

exercises/allergies/allergies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ class Allergies(object):
33
def __init__(self, score):
44
pass
55

6-
def is_allergic_to(self, item):
6+
def allergic_to(self, item):
77
pass
88

99
@property

exercises/allergies/allergies_test.py

Lines changed: 131 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,62 +7,161 @@
77
unittest.TestCase.assertCountEqual = unittest.TestCase.assertItemsEqual
88

99

10-
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0
10+
# Tests adapted from `problem-specifications//canonical-data.json` @ v2.0.0
1111

1212
class AllergiesTest(unittest.TestCase):
13-
def test_no_allergies_means_not_allergic(self):
14-
allergies = Allergies(0)
15-
self.assertIs(allergies.is_allergic_to('peanuts'), False)
16-
self.assertIs(allergies.is_allergic_to('cats'), False)
17-
self.assertIs(allergies.is_allergic_to('strawberries'), False)
18-
19-
def test_is_allergic_to_eggs(self):
20-
self.assertIs(Allergies(1).is_allergic_to('eggs'), True)
21-
22-
def test_allergic_to_eggs_in_addition_to_other_stuff(self):
23-
allergies = Allergies(5)
24-
self.assertIs(allergies.is_allergic_to('eggs'), True)
25-
self.assertIs(allergies.is_allergic_to('shellfish'), True)
26-
self.assertIs(allergies.is_allergic_to('strawberries'), False)
27-
28-
def test_allergic_to_strawberries_but_not_peanuts(self):
29-
allergies = Allergies(9)
30-
self.assertIs(allergies.is_allergic_to('eggs'), True)
31-
self.assertIs(allergies.is_allergic_to('peanuts'), False)
32-
self.assertIs(allergies.is_allergic_to('shellfish'), False)
33-
self.assertIs(allergies.is_allergic_to('strawberries'), True)
34-
35-
def test_no_allergies_at_all(self):
13+
14+
def test_eggs_not_allergic_to_anything(self):
15+
self.assertIs(Allergies(0).allergic_to("eggs"), False)
16+
17+
def test_allergic_only_to_eggs(self):
18+
self.assertIs(Allergies(1).allergic_to("eggs"), True)
19+
20+
def test_allergic_to_eggs_and_something_else(self):
21+
self.assertIs(Allergies(3).allergic_to("eggs"), True)
22+
23+
def test_allergic_to_something_but_not_eggs(self):
24+
self.assertIs(Allergies(2).allergic_to("eggs"), False)
25+
26+
def test_eggs_allergic_to_everything(self):
27+
self.assertIs(Allergies(255).allergic_to("eggs"), True)
28+
29+
def test_peanuts_not_allergic_to_anything(self):
30+
self.assertIs(Allergies(0).allergic_to("peanuts"), False)
31+
32+
def test_allergic_only_to_peanuts(self):
33+
self.assertIs(Allergies(2).allergic_to("peanuts"), True)
34+
35+
def test_allergic_to_peanuts_and_something_else(self):
36+
self.assertIs(Allergies(7).allergic_to("peanuts"), True)
37+
38+
def test_allergic_to_something_but_not_peanuts(self):
39+
self.assertIs(Allergies(5).allergic_to("peanuts"), False)
40+
41+
def test_peanuts_allergic_to_everything(self):
42+
self.assertIs(Allergies(255).allergic_to("peanuts"), True)
43+
44+
def test_shellfish_not_allergic_to_anything(self):
45+
self.assertIs(Allergies(0).allergic_to("shellfish"), False)
46+
47+
def test_allergic_only_to_shellfish(self):
48+
self.assertIs(Allergies(4).allergic_to("shellfish"), True)
49+
50+
def test_allergic_to_shellfish_and_something_else(self):
51+
self.assertIs(Allergies(14).allergic_to("shellfish"), True)
52+
53+
def test_allergic_to_something_but_not_shellfish(self):
54+
self.assertIs(Allergies(10).allergic_to("shellfish"), False)
55+
56+
def test_shellfish_allergic_to_everything(self):
57+
self.assertIs(Allergies(255).allergic_to("shellfish"), True)
58+
59+
def test_strawberries_not_allergic_to_anything(self):
60+
self.assertIs(Allergies(0).allergic_to("strawberries"), False)
61+
62+
def test_allergic_only_to_strawberries(self):
63+
self.assertIs(Allergies(8).allergic_to("strawberries"), True)
64+
65+
def test_allergic_to_strawberries_and_something_else(self):
66+
self.assertIs(Allergies(28).allergic_to("strawberries"), True)
67+
68+
def test_allergic_to_something_but_not_strawberries(self):
69+
self.assertIs(Allergies(20).allergic_to("strawberries"), False)
70+
71+
def test_strawberries_allergic_to_everything(self):
72+
self.assertIs(Allergies(255).allergic_to("strawberries"), True)
73+
74+
def test_tomatoes_not_allergic_to_anything(self):
75+
self.assertIs(Allergies(0).allergic_to("tomatoes"), False)
76+
77+
def test_allergic_only_to_tomatoes(self):
78+
self.assertIs(Allergies(16).allergic_to("tomatoes"), True)
79+
80+
def test_allergic_to_tomatoes_and_something_else(self):
81+
self.assertIs(Allergies(56).allergic_to("tomatoes"), True)
82+
83+
def test_allergic_to_something_but_not_tomatoes(self):
84+
self.assertIs(Allergies(40).allergic_to("tomatoes"), False)
85+
86+
def test_tomatoes_allergic_to_everything(self):
87+
self.assertIs(Allergies(255).allergic_to("tomatoes"), True)
88+
89+
def test_chocolate_not_allergic_to_anything(self):
90+
self.assertIs(Allergies(0).allergic_to("chocolate"), False)
91+
92+
def test_allergic_only_to_chocolate(self):
93+
self.assertIs(Allergies(32).allergic_to("chocolate"), True)
94+
95+
def test_allergic_to_chocolate_and_something_else(self):
96+
self.assertIs(Allergies(112).allergic_to("chocolate"), True)
97+
98+
def test_allergic_to_something_but_not_chocolate(self):
99+
self.assertIs(Allergies(80).allergic_to("chocolate"), False)
100+
101+
def test_chocolate_alergic_to_everything(self):
102+
self.assertIs(Allergies(255).allergic_to("chocolate"), True)
103+
104+
def test_pollen_not_alergic_to_anything(self):
105+
self.assertIs(Allergies(0).allergic_to("pollen"), False)
106+
107+
def test_allergic_only_to_pollen(self):
108+
self.assertIs(Allergies(64).allergic_to("pollen"), True)
109+
110+
def test_allergic_to_pollen_and_something_else(self):
111+
self.assertIs(Allergies(224).allergic_to("pollen"), True)
112+
113+
def test_allergic_to_something_but_not_pollen(self):
114+
self.assertIs(Allergies(160).allergic_to("pollen"), False)
115+
116+
def test_pollen_allergic_to_everything(self):
117+
self.assertIs(Allergies(255).allergic_to("pollen"), True)
118+
119+
def test_cats_not_allergic_to_anything(self):
120+
self.assertIs(Allergies(0).allergic_to("cats"), False)
121+
122+
def test_allergic_only_to_cats(self):
123+
self.assertIs(Allergies(128).allergic_to("cats"), True)
124+
125+
def test_allergic_to_cats_and_something_else(self):
126+
self.assertIs(Allergies(192).allergic_to("cats"), True)
127+
128+
def test_allergic_to_something_but_not_cats(self):
129+
self.assertIs(Allergies(64).allergic_to("cats"), False)
130+
131+
def test_cats_allergic_to_everything(self):
132+
self.assertIs(Allergies(255).allergic_to('cats'), True)
133+
134+
def test_no_allergies(self):
36135
self.assertEqual(Allergies(0).lst, [])
37136

38-
def test_allergic_to_just_eggs(self):
137+
def test_just_eggs(self):
39138
self.assertEqual(Allergies(1).lst, ['eggs'])
40139

41-
def test_allergic_to_just_peanuts(self):
140+
def test_just_peanuts(self):
42141
self.assertEqual(Allergies(2).lst, ['peanuts'])
43142

44-
def test_allergic_to_just_strawberries(self):
143+
def test_just_strawberries(self):
45144
self.assertEqual(Allergies(8).lst, ['strawberries'])
46145

47-
def test_allergic_to_eggs_and_peanuts(self):
146+
def test_eggs_and_peanuts(self):
48147
self.assertCountEqual(Allergies(3).lst, ['eggs', 'peanuts'])
49148

50-
def test_allergic_to_more_than_eggs_but_not_peanuts(self):
149+
def test_more_than_eggs_but_not_peanuts(self):
51150
self.assertCountEqual(Allergies(5).lst, ['eggs', 'shellfish'])
52151

53-
def test_allergic_to_lots_of_stuff(self):
152+
def test_lots_of_stuff(self):
54153
self.assertCountEqual(
55154
Allergies(248).lst,
56155
['strawberries', 'tomatoes', 'chocolate', 'pollen', 'cats'])
57156

58-
def test_allergic_to_everything(self):
157+
def test_everything(self):
59158
self.assertCountEqual(
60159
Allergies(255).lst, [
61160
'eggs', 'peanuts', 'shellfish', 'strawberries', 'tomatoes',
62161
'chocolate', 'pollen', 'cats'
63162
])
64163

65-
def test_ignore_non_allergen_score_parts(self):
164+
def test_no_allergen_score_parts(self):
66165
self.assertCountEqual(
67166
Allergies(509).lst, [
68167
'eggs', 'shellfish', 'strawberries', 'tomatoes', 'chocolate',

exercises/allergies/example.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ class Allergies(object):
1414
def __init__(self, score):
1515
self.score = score
1616

17-
def is_allergic_to(self, allergy):
17+
def allergic_to(self, allergy):
1818
return bool(self.score & 1 << self._allergies.index(allergy))
1919

2020
@property
2121
def lst(self):
2222
return [allergy for allergy in self._allergies
23-
if self.is_allergic_to(allergy)]
23+
if self.allergic_to(allergy)]

0 commit comments

Comments
 (0)