Sha256: 287bb910e09e232801f37a6d864e0108976ff0358c6ccbb87eb70c969d7dda19

Contents?: true

Size: 1.54 KB

Versions: 30

Compression:

Stored size: 1.54 KB

Contents

package change

// Source: exercism/problem-specifications
// Commit: 52cf1cf Add test for incorrect greedy algorithm
// Problem Specifications Version: 1.1.0

var testCases = []struct {
	description    string
	coins          []int
	target         int
	valid          bool  // true => no error, false => error expected
	expectedChange []int // when .valid == true, the expected change coins
}{
	{
		"single coin change",
		[]int{1, 5, 10, 25, 100},
		25,
		true,
		[]int{25},
	},
	{
		"multiple coin change",
		[]int{1, 5, 10, 25, 100},
		15,
		true,
		[]int{5, 10},
	},
	{
		"change with Lilliputian Coins",
		[]int{1, 4, 15, 20, 50},
		23,
		true,
		[]int{4, 4, 15},
	},
	{
		"change with Lower Elbonia Coins",
		[]int{1, 5, 10, 21, 25},
		63,
		true,
		[]int{21, 21, 21},
	},
	{
		"large target values",
		[]int{1, 2, 5, 10, 20, 50, 100},
		999,
		true,
		[]int{2, 2, 5, 20, 20, 50, 100, 100, 100, 100, 100, 100, 100, 100, 100},
	},
	{
		"possible change without unit coins available",
		[]int{2, 5, 10, 20, 50},
		21,
		true,
		[]int{2, 2, 2, 5, 10},
	},
	{
		"another possible change without unit coins available",
		[]int{4, 5},
		27,
		true,
		[]int{4, 4, 4, 5, 5, 5},
	},
	{
		"no coins make 0 change",
		[]int{1, 5, 10, 21, 25},
		0,
		true,
		[]int{},
	},
	{
		"error testing for change smaller than the smallest of coins",
		[]int{5, 10},
		3,
		false,
		[]int(nil),
	},
	{
		"error if no combination can add up to target",
		[]int{5, 10},
		94,
		false,
		[]int(nil),
	},
	{
		"cannot find negative change values",
		[]int{1, 2, 5},
		-5,
		false,
		[]int(nil),
	},
}

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
trackler-2.2.1.86 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.85 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.84 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.83 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.82 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.81 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.80 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.79 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.78 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.77 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.76 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.75 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.74 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.73 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.72 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.71 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.70 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.69 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.68 tracks/go/exercises/change/cases_test.go
trackler-2.2.1.67 tracks/go/exercises/change/cases_test.go