Add tests for coins
This commit is contained in:
parent
102d196204
commit
1cc0cf236c
|
@ -72,10 +72,7 @@ func (coins Coins) IsValid() bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Plus combines to sets of coins
|
// Plus combines two sets of coins
|
||||||
//
|
|
||||||
// TODO: handle empty coins!
|
|
||||||
// Currently appends an empty coin ...
|
|
||||||
func (coins Coins) Plus(coinsB Coins) Coins {
|
func (coins Coins) Plus(coinsB Coins) Coins {
|
||||||
sum := []Coin{}
|
sum := []Coin{}
|
||||||
indexA, indexB := 0, 0
|
indexA, indexB := 0, 0
|
||||||
|
@ -110,7 +107,6 @@ func (coins Coins) Plus(coinsB Coins) Coins {
|
||||||
indexB++
|
indexB++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sum
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Negative returns a set of coins with all amount negative
|
// Negative returns a set of coins with all amount negative
|
||||||
|
|
|
@ -52,7 +52,28 @@ func TestCoins(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Test the parse coin and parse coins functionality
|
func TestPlusCoins(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
cases := []struct {
|
||||||
|
inputOne Coins
|
||||||
|
inputTwo Coins
|
||||||
|
expected Coins
|
||||||
|
}{
|
||||||
|
{Coins{{"A", 1}, {"B", 1}}, Coins{{"A", 1}, {"B", 1}}, Coins{{"A", 2}, {"B", 2}}},
|
||||||
|
{Coins{{"A", 0}, {"B", 1}}, Coins{{"A", 0}, {"B", 0}}, Coins{{"B", 1}}},
|
||||||
|
{Coins{{"A", 0}, {"B", 0}}, Coins{{"A", 0}, {"B", 0}}, Coins{}},
|
||||||
|
{Coins{{"A", 1}, {"B", 0}}, Coins{{"A", -1}, {"B", 0}}, Coins{}},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tc := range cases {
|
||||||
|
res := tc.inputOne.Plus(tc.inputTwo)
|
||||||
|
assert.True(res.IsValid())
|
||||||
|
assert.Equal(res, tc.expected)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Test the parsing of Coin and Coins
|
||||||
func TestParse(t *testing.T) {
|
func TestParse(t *testing.T) {
|
||||||
|
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
|
|
Loading…
Reference in New Issue