From f84ffc8e453ad1221ae7899aa85c00f6d42a4bb2 Mon Sep 17 00:00:00 2001 From: Scott Swingle Date: Wed, 20 Nov 2019 13:57:53 -0800 Subject: [PATCH 1/3] add test to bookstore, checking that solutions can mix groups of 4 and 5 --- exercises/book-store/book_store_test.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/exercises/book-store/book_store_test.py b/exercises/book-store/book_store_test.py index 9bf91b85f9..8c0d3c8ee7 100644 --- a/exercises/book-store/book_store_test.py +++ b/exercises/book-store/book_store_test.py @@ -83,6 +83,10 @@ def test_four_groups_of_four_are_cheaper_than_two_groups_each_of_five_and_three( table = 10240 self.assertEqual(total(results), table) + def test_one_group_of_five_and_two_groups_of_four(self): + results = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3] + table = 8120 + self.assertEqual(total(results), table) if __name__ == "__main__": unittest.main() From 08857f4bc0ac1546fa9518a6c33a232d19217259 Mon Sep 17 00:00:00 2001 From: Scott Swingle Date: Sat, 23 Nov 2019 19:18:40 -0800 Subject: [PATCH 2/3] sort inputs in book store example solution, set new test to correct name --- exercises/book-store/book_store_test.py | 4 ++-- exercises/book-store/example.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/exercises/book-store/book_store_test.py b/exercises/book-store/book_store_test.py index 8c0d3c8ee7..a538eeadc8 100644 --- a/exercises/book-store/book_store_test.py +++ b/exercises/book-store/book_store_test.py @@ -83,8 +83,8 @@ def test_four_groups_of_four_are_cheaper_than_two_groups_each_of_five_and_three( table = 10240 self.assertEqual(total(results), table) - def test_one_group_of_five_and_two_groups_of_four(self): - results = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3] + def test_two_groups_of_four_and_a_group_of_five(self): + results = [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5] table = 8120 self.assertEqual(total(results), table) diff --git a/exercises/book-store/example.py b/exercises/book-store/example.py index 4236656ada..ca82c90946 100644 --- a/exercises/book-store/example.py +++ b/exercises/book-store/example.py @@ -47,5 +47,6 @@ def step(basket, book): def total(basket): if len(basket) == 0: return 0 + basket.sort() start = Grouping([{basket[0]}]) return round(min(reduce(step, basket[1:], [start])).total()) From d4e68246fce9085a1ff30e4db7482b6561cff4bb Mon Sep 17 00:00:00 2001 From: Scott Swingle Date: Tue, 26 Nov 2019 19:55:03 -0800 Subject: [PATCH 3/3] adding shuffled book order test and fixing sort --- exercises/book-store/book_store_test.py | 8 +++++++- exercises/book-store/example.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/exercises/book-store/book_store_test.py b/exercises/book-store/book_store_test.py index a538eeadc8..14de459815 100644 --- a/exercises/book-store/book_store_test.py +++ b/exercises/book-store/book_store_test.py @@ -2,7 +2,7 @@ from book_store import total -# Tests adapted from `problem-specifications//canonical-data.json` @ v1.4.0 +# Tests adapted from `problem-specifications//canonical-data.json` @ v1.5.0 class BookStoreTest(unittest.TestCase): @@ -88,5 +88,11 @@ def test_two_groups_of_four_and_a_group_of_five(self): table = 8120 self.assertEqual(total(results), table) + def test_shuffled_book_order(self): + results = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3] + table = 8120 + self.assertEqual(total(results), table) + + if __name__ == "__main__": unittest.main() diff --git a/exercises/book-store/example.py b/exercises/book-store/example.py index ca82c90946..24f1a0873c 100644 --- a/exercises/book-store/example.py +++ b/exercises/book-store/example.py @@ -47,6 +47,6 @@ def step(basket, book): def total(basket): if len(basket) == 0: return 0 - basket.sort() + basket = sorted(basket) start = Grouping([{basket[0]}]) return round(min(reduce(step, basket[1:], [start])).total())