diff options
Diffstat (limited to 'logic/dice_test.go')
| -rw-r--r-- | logic/dice_test.go | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/logic/dice_test.go b/logic/dice_test.go new file mode 100644 index 0000000..2a6c67c --- /dev/null +++ b/logic/dice_test.go @@ -0,0 +1,115 @@ +// Copyright (c) 2016 Florian Fischer. All rights reserved. +// Use of this source code is governed by a MIT license found in the LICENSE file. + +package logic + +import "testing" + +func TestSum(t *testing.T) { + d := Dices{1, 1, 1, 2, 6} + if d.Sum(1) != 3 { + t.Errorf("Sum(1) of %v should be 3", d) + } + d = Dices{1, 1, 1, 2, 6} + if d.Sum(2) != 2 { + t.Errorf("Sum(2) of %v should be 2", d) + } + d = Dices{1, 1, 1, 2, 6} + if d.Sum(0) != 11 { + t.Errorf("Sum(0) of %v should be 11", d) + } + d = Dices{1, 1, 1, 2, 6} + if d.Sum(3) != 0 { + t.Errorf("Sum(3) of %v should be 0", d) + } +} + +func TestIsThreeOfAKind(t *testing.T) { + dices := []Dices{Dices{1, 2, 3, 3, 3}, Dices{1, 4, 4, 4, 5}, Dices{2, 2, 2, 3, 6}, Dices{1, 1, 1, 1, 1}} + for _, d := range dices { + if !d.IsThreeOfAKind() { + t.Errorf("%v is three of a kind", d) + } + } + dices = []Dices{Dices{1, 2, 3, 3, 4}, Dices{1, 4, 4, 5, 5}, Dices{1, 2, 2, 3, 6}, Dices{1, 1, 2, 5, 6}} + for _, d := range dices { + if d.IsThreeOfAKind() { + t.Errorf("%v is not three of a kind", d) + } + } +} + +func TestIsFourOfAKind(t *testing.T) { + dices := []Dices{Dices{1, 3, 3, 3, 3}, Dices{1, 4, 4, 4, 4}, Dices{2, 2, 2, 2, 6}, Dices{1, 1, 1, 1, 1}} + for _, d := range dices { + if !d.IsFourOfAKind() { + t.Errorf("%v is four of a kind", d) + } + } + dices = []Dices{Dices{1, 2, 3, 3, 4}, Dices{1, 4, 4, 5, 5}, Dices{1, 2, 2, 3, 6}, Dices{1, 1, 2, 5, 6}} + for _, d := range dices { + if d.IsFourOfAKind() { + t.Errorf("%v is not four of a kind", d) + } + } +} + +func TestIsFullHouse(t *testing.T) { + dices := []Dices{Dices{1, 1, 3, 3, 3}, Dices{1, 1, 4, 4, 4}, Dices{2, 2, 2, 6, 6}} + for _, d := range dices { + if !d.IsFullHouse() { + t.Errorf("%v is a full house", d) + } + } + dices = []Dices{Dices{1, 2, 3, 3, 4}, Dices{1, 4, 4, 5, 5}, Dices{1, 2, 2, 3, 6}, Dices{1, 1, 2, 5, 6}} + for _, d := range dices { + if d.IsFullHouse() { + t.Errorf("%v is not a full house", d) + } + } +} + +func TestIsSmallStraight(t *testing.T) { + dices := []Dices{Dices{1, 2, 3, 4, 6}, Dices{1, 1, 2, 3, 4}, Dices{2, 3, 4, 5, 6}, Dices{1, 2, 3, 3, 4}} + for _, d := range dices { + if !d.IsSmallStraight() { + t.Errorf("%v is a small straight", d) + } + } + dices = []Dices{Dices{1, 2, 3, 3, 5}, Dices{1, 4, 4, 5, 5}, Dices{1, 2, 2, 3, 6}, Dices{1, 1, 2, 5, 6}} + for _, d := range dices { + if d.IsSmallStraight() { + t.Errorf("%v is not a small straight", d) + } + } +} + +func TestIsLargeStraight(t *testing.T) { + dices := []Dices{Dices{1, 2, 3, 4, 5}, Dices{2, 3, 4, 5, 6}} + for _, d := range dices { + if !d.IsLargeStraight() { + t.Errorf("%v is a large straight", d) + } + } + dices = []Dices{Dices{1, 2, 3, 3, 4}, Dices{1, 4, 4, 5, 5}, Dices{1, 2, 2, 3, 6}, Dices{1, 1, 2, 5, 6}} + for _, d := range dices { + if d.IsLargeStraight() { + t.Errorf("%v is not a large straight", d) + } + } +} + +func TestIsYahtzee(t *testing.T) { + dices := []Dices{Dices{3, 3, 3, 3, 3}, Dices{1, 1, 1, 1, 1}} + for _, d := range dices { + if !d.IsYahtzee() { + t.Errorf("%v is a yahtzee", d) + } + } + dices = []Dices{Dices{1, 2, 3, 3, 4}, Dices{1, 4, 4, 5, 5}, Dices{1, 2, 2, 3, 6}, Dices{1, 1, 2, 5, 6}} + for _, d := range dices { + if d.IsYahtzee() { + t.Errorf("%v is not a yahtzee", d) + } + } +} |
