From 7838343fd9573df47e10c9aca37f45ab09d5946f Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 19:22:22 -0400 Subject: [PATCH 01/10] fixes #1756 Updated it for canonical-data v2.0.0 --- exercises/allergies/allergies_test.py | 172 +++++++++++++++++++++----- 1 file changed, 140 insertions(+), 32 deletions(-) diff --git a/exercises/allergies/allergies_test.py b/exercises/allergies/allergies_test.py index ad371cf3f5..5f48768b0e 100644 --- a/exercises/allergies/allergies_test.py +++ b/exercises/allergies/allergies_test.py @@ -7,62 +7,170 @@ unittest.TestCase.assertCountEqual = unittest.TestCase.assertItemsEqual -# Tests adapted from `problem-specifications//canonical-data.json` @ v1.2.0 +# Tests adapted from `problem-specifications//canonical-data.json` @ v2.0.0 class AllergiesTest(unittest.TestCase): - def test_no_allergies_means_not_allergic(self): - allergies = Allergies(0) - self.assertIs(allergies.is_allergic_to('peanuts'), False) - self.assertIs(allergies.is_allergic_to('cats'), False) - self.assertIs(allergies.is_allergic_to('strawberries'), False) - - def test_is_allergic_to_eggs(self): - self.assertIs(Allergies(1).is_allergic_to('eggs'), True) - - def test_allergic_to_eggs_in_addition_to_other_stuff(self): - allergies = Allergies(5) - self.assertIs(allergies.is_allergic_to('eggs'), True) - self.assertIs(allergies.is_allergic_to('shellfish'), True) - self.assertIs(allergies.is_allergic_to('strawberries'), False) - - def test_allergic_to_strawberries_but_not_peanuts(self): - allergies = Allergies(9) - self.assertIs(allergies.is_allergic_to('eggs'), True) - self.assertIs(allergies.is_allergic_to('peanuts'), False) - self.assertIs(allergies.is_allergic_to('shellfish'), False) - self.assertIs(allergies.is_allergic_to('strawberries'), True) - - def test_no_allergies_at_all(self): + + + def test_eggs_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("eggs"), False) + + def test_allergic_only_to_eggs(self): + self.assertIs(Allergies(1).allergic_to("eggs"), True) + + def test_allergic_to_eggs_and_something_else(self): + self.assertIs(Allergies(3).allergic_to("eggs"), True) + + def test_allergic_to_something_but_not_eggs(self): + self.assertIs(Allergies(2).allergic_to("eggs"), False) + + def test_eggs_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("eggs"), True) + + + def test_peanuts_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("peanuts"), False) + + def test_allergic_only_to_peanuts(self): + self.assertIs(Allergies(2).allergic_to("peanuts"), True) + + def test_allergic_to_peanuts_and_something_else(self): + self.assertIs(Allergies(7).allergic_to("peanuts"), True) + + def test_allergic_to_something_but_not_peanuts(self): + self.assertIs(Allergies(5).allergic_to("peanuts"), False) + + def test_peanuts_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("peanuts"), True) + + + def test_shellfish_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("shellfish"), False) + + def test_allergic_only_to_shellfish(self): + self.assertIs(Allergies(4).allergic_to("shellfish"), True) + + def test_allergic_to_shellfish_and_something_else(self): + self.assertIs(Allergies(14).allergic_to("shellfish"), True) + + def test_allergic_to_something_but_not_shellfish(self): + self.assertIs(Allergies(10).allergic_to("shellfish"), False) + + def test_shellfish_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("shellfish"), True) + + + def test_strawberries_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("strawberries"), False) + + def test_allergic_only_to_strawberries(self): + self.assertIs(Allergies(8).allergic_to("strawberries"), True) + + def test_allergic_to_strawberries_and_something_else(self): + self.assertIs(Allergies(28).allergic_to("strawberries"), True) + + def test_allergic_to_something_but_not_strawberries(self): + self.assertIs(Allergies(20).allergic_to("strawberries"), False) + + def test_strawberries_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("strawberries"), True) + + + def test_tomatoes_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("tomatoes"), False) + + def test_allergic_only_to_tomatoes(self): + self.assertIs(Allergies(16).allergic_to("tomatoes"), True) + + def test_allergic_to_tomatoes_and_something_else(self): + self.assertIs(Allergies(56).allergic_to("tomatoes"), True) + + def test_allergic_to_something_but_not_tomatoes(self): + self.assertIs(Allergies(40).allergic_to("tomatoes"), False) + + def test_tomatoes_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("tomatoes"), True) + + + def test_chocolate_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("chocolate"), False) + + def test_allergic_only_to_chocolate(self): + self.assertIs(Allergies(32).allergic_to("chocolate"), True) + + def test_allergic_to_chocolate_and_something_else(self): + self.assertIs(Allergies(112).allergic_to("chocolate"), True) + + def test_allergic_to_something_but_not_chocolate(self): + self.assertIs(Allergies(80).allergic_to("chocolate"), False) + + def test_chocolate_alergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("chocolate"), True) + + + def test_pollen_not_alergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("pollen"), False) + + def test_allergic_only_to_pollen(self): + self.assertIs(Allergies(64).allergic_to("pollen"), True) + + def test_allergic_to_pollen_and_something_else(self): + self.assertIs(Allergies(224).allergic_to("pollen"), True) + + def test_allergic_to_something_but_not_pollen(self): + self.assertIs(Allergies(160).allergic_to("pollen"), False) + + def test_pollen_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to("pollen"), True) + + + def test_cats_not_allergic_to_anything(self): + self.assertIs(Allergies(0).allergic_to("cats"), False) + + def test_allergic_only_to_cats(self): + self.assertIs(Allergies(128).allergic_to("cats"),True) + + def test_allergic_to_cats_and_something_else(self): + self.assertIs(Allergies(192).allergic_to("cats"),True) + + def test_allergic_to_something_but_not_cats(self): + self.assertIs(Allergies(64).allergic_to("cats"),False) + + def test_cats_allergic_to_everything(self): + self.assertIs(Allergies(255).allergic_to('cats'),True) + + + def test_no_allergies(self): self.assertEqual(Allergies(0).lst, []) - def test_allergic_to_just_eggs(self): + def test_just_eggs(self): self.assertEqual(Allergies(1).lst, ['eggs']) - def test_allergic_to_just_peanuts(self): + def test_just_peanuts(self): self.assertEqual(Allergies(2).lst, ['peanuts']) - def test_allergic_to_just_strawberries(self): + def test_just_strawberries(self): self.assertEqual(Allergies(8).lst, ['strawberries']) - def test_allergic_to_eggs_and_peanuts(self): + def test_eggs_and_peanuts(self): self.assertCountEqual(Allergies(3).lst, ['eggs', 'peanuts']) - def test_allergic_to_more_than_eggs_but_not_peanuts(self): + def test_more_than_eggs_but_not_peanuts(self): self.assertCountEqual(Allergies(5).lst, ['eggs', 'shellfish']) - def test_allergic_to_lots_of_stuff(self): + def test_lots_of_stuff(self): self.assertCountEqual( Allergies(248).lst, ['strawberries', 'tomatoes', 'chocolate', 'pollen', 'cats']) - def test_allergic_to_everything(self): + def test_everything(self): self.assertCountEqual( Allergies(255).lst, [ 'eggs', 'peanuts', 'shellfish', 'strawberries', 'tomatoes', 'chocolate', 'pollen', 'cats' ]) - def test_ignore_non_allergen_score_parts(self): + def test_no_allergen_score_parts(self): self.assertCountEqual( Allergies(509).lst, [ 'eggs', 'shellfish', 'strawberries', 'tomatoes', 'chocolate', From 5eb7b11444903134f43353a64a980c90aef7bf35 Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:00:05 -0400 Subject: [PATCH 02/10] Update allergies_test.py fixed the white space commit issue --- exercises/allergies/allergies_test.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/exercises/allergies/allergies_test.py b/exercises/allergies/allergies_test.py index 5f48768b0e..16c431f108 100644 --- a/exercises/allergies/allergies_test.py +++ b/exercises/allergies/allergies_test.py @@ -10,8 +10,7 @@ # Tests adapted from `problem-specifications//canonical-data.json` @ v2.0.0 class AllergiesTest(unittest.TestCase): - - + def test_eggs_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("eggs"), False) @@ -23,11 +22,10 @@ def test_allergic_to_eggs_and_something_else(self): def test_allergic_to_something_but_not_eggs(self): self.assertIs(Allergies(2).allergic_to("eggs"), False) - + def test_eggs_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("eggs"), True) - def test_peanuts_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("peanuts"), False) @@ -43,7 +41,6 @@ def test_allergic_to_something_but_not_peanuts(self): def test_peanuts_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("peanuts"), True) - def test_shellfish_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("shellfish"), False) @@ -59,7 +56,6 @@ def test_allergic_to_something_but_not_shellfish(self): def test_shellfish_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("shellfish"), True) - def test_strawberries_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("strawberries"), False) @@ -75,7 +71,6 @@ def test_allergic_to_something_but_not_strawberries(self): def test_strawberries_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("strawberries"), True) - def test_tomatoes_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("tomatoes"), False) @@ -107,7 +102,6 @@ def test_allergic_to_something_but_not_chocolate(self): def test_chocolate_alergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("chocolate"), True) - def test_pollen_not_alergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("pollen"), False) @@ -123,7 +117,6 @@ def test_allergic_to_something_but_not_pollen(self): def test_pollen_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("pollen"), True) - def test_cats_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("cats"), False) @@ -139,7 +132,6 @@ def test_allergic_to_something_but_not_cats(self): def test_cats_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to('cats'),True) - def test_no_allergies(self): self.assertEqual(Allergies(0).lst, []) @@ -177,6 +169,5 @@ def test_no_allergen_score_parts(self): 'pollen', 'cats' ]) - if __name__ == '__main__': unittest.main() From a6dd3391e71aa8e39432a74d53c47308dde518eb Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:02:58 -0400 Subject: [PATCH 03/10] rerefixes whitespace Hate how sensitive it is to whitespace --- exercises/allergies/allergies_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/exercises/allergies/allergies_test.py b/exercises/allergies/allergies_test.py index 16c431f108..1abef1e707 100644 --- a/exercises/allergies/allergies_test.py +++ b/exercises/allergies/allergies_test.py @@ -169,5 +169,6 @@ def test_no_allergen_score_parts(self): 'pollen', 'cats' ]) + if __name__ == '__main__': unittest.main() From 82a89ecaccea7fff04c8a28c7a06fc607570076d Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:07:08 -0400 Subject: [PATCH 04/10] Update allergies_test.py --- exercises/allergies/allergies_test.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/exercises/allergies/allergies_test.py b/exercises/allergies/allergies_test.py index 1abef1e707..554db009b9 100644 --- a/exercises/allergies/allergies_test.py +++ b/exercises/allergies/allergies_test.py @@ -10,7 +10,7 @@ # Tests adapted from `problem-specifications//canonical-data.json` @ v2.0.0 class AllergiesTest(unittest.TestCase): - + def test_eggs_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("eggs"), False) @@ -86,7 +86,6 @@ def test_allergic_to_something_but_not_tomatoes(self): def test_tomatoes_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("tomatoes"), True) - def test_chocolate_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("chocolate"), False) @@ -121,16 +120,16 @@ def test_cats_not_allergic_to_anything(self): self.assertIs(Allergies(0).allergic_to("cats"), False) def test_allergic_only_to_cats(self): - self.assertIs(Allergies(128).allergic_to("cats"),True) + self.assertIs(Allergies(128).allergic_to("cats"), True) def test_allergic_to_cats_and_something_else(self): - self.assertIs(Allergies(192).allergic_to("cats"),True) + self.assertIs(Allergies(192).allergic_to("cats"), True) def test_allergic_to_something_but_not_cats(self): - self.assertIs(Allergies(64).allergic_to("cats"),False) + self.assertIs(Allergies(64).allergic_to("cats"), False) def test_cats_allergic_to_everything(self): - self.assertIs(Allergies(255).allergic_to('cats'),True) + self.assertIs(Allergies(255).allergic_to('cats'), True) def test_no_allergies(self): self.assertEqual(Allergies(0).lst, []) From 281ce279339e34b5b91f4e29d4d334736bd720ba Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:12:31 -0400 Subject: [PATCH 05/10] Update allergies_test.py --- exercises/allergies/allergies_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/allergies/allergies_test.py b/exercises/allergies/allergies_test.py index 554db009b9..ad67eae3c5 100644 --- a/exercises/allergies/allergies_test.py +++ b/exercises/allergies/allergies_test.py @@ -22,7 +22,7 @@ def test_allergic_to_eggs_and_something_else(self): def test_allergic_to_something_but_not_eggs(self): self.assertIs(Allergies(2).allergic_to("eggs"), False) - + def test_eggs_allergic_to_everything(self): self.assertIs(Allergies(255).allergic_to("eggs"), True) From 6885592028f8502c4e299137a7a3cc3d654fc44f Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:15:32 -0400 Subject: [PATCH 06/10] now uses canon-data properties --- exercises/allergies/allergies.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exercises/allergies/allergies.py b/exercises/allergies/allergies.py index f1eb64b0f0..e6a9b6c1f6 100644 --- a/exercises/allergies/allergies.py +++ b/exercises/allergies/allergies.py @@ -3,8 +3,8 @@ class Allergies(object): def __init__(self, score): pass - def is_allergic_to(self, item): - pass + def allergic_to(self, allergy): + return bool(self.score & 1 << self._allergies.index(allergy)) @property def lst(self): From 8ea3e27271522edde999cf52cda965227c0d1eab Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:18:24 -0400 Subject: [PATCH 07/10] Accidentally updated wrong file --- exercises/allergies/allergies.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exercises/allergies/allergies.py b/exercises/allergies/allergies.py index e6a9b6c1f6..f1eb64b0f0 100644 --- a/exercises/allergies/allergies.py +++ b/exercises/allergies/allergies.py @@ -3,8 +3,8 @@ class Allergies(object): def __init__(self, score): pass - def allergic_to(self, allergy): - return bool(self.score & 1 << self._allergies.index(allergy)) + def is_allergic_to(self, item): + pass @property def lst(self): From 77547c3dd6eb83c06c977f3f9045969c60ad9ac3 Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:19:29 -0400 Subject: [PATCH 08/10] Changed it so it used canon-data properties. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hopefully this version runs with no errors๐Ÿ˜Ž๐Ÿ˜Ž๐Ÿ˜Ž --- exercises/allergies/example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/allergies/example.py b/exercises/allergies/example.py index a88674ca97..7f5e5289fa 100644 --- a/exercises/allergies/example.py +++ b/exercises/allergies/example.py @@ -14,7 +14,7 @@ class Allergies(object): def __init__(self, score): self.score = score - def is_allergic_to(self, allergy): + def allergic_to(self, allergy): return bool(self.score & 1 << self._allergies.index(allergy)) @property From 3802339675352d31ba3f2f76c7b6403755f87a1d Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:22:22 -0400 Subject: [PATCH 09/10] Update allergies.py --- exercises/allergies/allergies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/allergies/allergies.py b/exercises/allergies/allergies.py index f1eb64b0f0..8299b31e55 100644 --- a/exercises/allergies/allergies.py +++ b/exercises/allergies/allergies.py @@ -3,7 +3,7 @@ class Allergies(object): def __init__(self, score): pass - def is_allergic_to(self, item): + def allergic_to(self, item): pass @property From baa3b20122ea4147c6d62d482fb6ba51f5d1f38c Mon Sep 17 00:00:00 2001 From: spencer51324312 Date: Wed, 8 May 2019 20:25:48 -0400 Subject: [PATCH 10/10] I feel kinda dumb for this mistake Sorry about all those commits. It was a simple mistake of not changing the function call to point to the new function --- exercises/allergies/example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/allergies/example.py b/exercises/allergies/example.py index 7f5e5289fa..9e534667f3 100644 --- a/exercises/allergies/example.py +++ b/exercises/allergies/example.py @@ -20,4 +20,4 @@ def allergic_to(self, allergy): @property def lst(self): return [allergy for allergy in self._allergies - if self.is_allergic_to(allergy)] + if self.allergic_to(allergy)]