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) } } }