From f2e7ca36de4fe799a002250d5a35e44f69532c39 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 23 Sep 2018 21:35:14 +0200 Subject: add book-store --- go/book-store/cases_test.go | 87 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 go/book-store/cases_test.go (limited to 'go/book-store/cases_test.go') diff --git a/go/book-store/cases_test.go b/go/book-store/cases_test.go new file mode 100644 index 0000000..b42d263 --- /dev/null +++ b/go/book-store/cases_test.go @@ -0,0 +1,87 @@ +package bookstore + +// Source: exercism/problem-specifications +// Commit: 33c6b60 book-store: Add test case to thwart list-order greedy solutions (#1297) +// Problem Specifications Version: 1.4.0 + +var testCases = []struct { + description string + basket []int + expected int +}{ + { + description: "Only a single book", + basket: []int{1}, + expected: 800, + }, + { + description: "Two of the same book", + basket: []int{2, 2}, + expected: 1600, + }, + { + description: "Empty basket", + basket: []int{}, + expected: 0, + }, + { + description: "Two different books", + basket: []int{1, 2}, + expected: 1520, + }, + { + description: "Three different books", + basket: []int{1, 2, 3}, + expected: 2160, + }, + { + description: "Four different books", + basket: []int{1, 2, 3, 4}, + expected: 2560, + }, + { + description: "Five different books", + basket: []int{1, 2, 3, 4, 5}, + expected: 3000, + }, + { + description: "Two groups of four is cheaper than group of five plus group of three", + basket: []int{1, 1, 2, 2, 3, 3, 4, 5}, + expected: 5120, + }, + { + description: "Two groups of four is cheaper than groups of five and three", + basket: []int{1, 1, 2, 3, 4, 4, 5, 5}, + expected: 5120, + }, + { + description: "Group of four plus group of two is cheaper than two groups of three", + basket: []int{1, 1, 2, 2, 3, 4}, + expected: 4080, + }, + { + description: "Two each of first 4 books and 1 copy each of rest", + basket: []int{1, 1, 2, 2, 3, 3, 4, 4, 5}, + expected: 5560, + }, + { + description: "Two copies of each book", + basket: []int{1, 1, 2, 2, 3, 3, 4, 4, 5, 5}, + expected: 6000, + }, + { + description: "Three copies of first book and 2 each of remaining", + basket: []int{1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1}, + expected: 6800, + }, + { + description: "Three each of first 2 books and 2 each of remaining books", + basket: []int{1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1, 2}, + expected: 7520, + }, + { + description: "Four groups of four are cheaper than two groups each of five and three", + basket: []int{1, 1, 2, 2, 3, 3, 4, 5, 1, 1, 2, 2, 3, 3, 4, 5}, + expected: 10240, + }, +} -- cgit v1.2.3