github.com/jefffederman/gophe@v0.0.0-20221203163656-b38beff92772/evaluator_test.go (about) 1 package gophe 2 3 import ( 4 "testing" 5 ) 6 7 func TestEvalOne(t *testing.T) { 8 h := NewHand(NewCard("Ah"), NewCard("Kh"), NewCard("Qh"), NewCard("Jh"), NewCard("Td")) 9 r1 := EvaluateHand(*h) 10 c1 := GetRankCategory(r1.GetValue()) 11 if DescribeRankCategory(c1) != "Straight" { 12 t.Errorf("DescribeRankCategory(c) = %s, wanted Straight", DescribeRankCategory(c1)) 13 } 14 h.ModifyHand(NewCard("Th")) 15 r2 := EvaluateHand(*h) 16 c2 := GetRankCategory(r2.GetValue()) 17 if DescribeRankCategory(c2) != "Straight Flush" { 18 t.Errorf("DescribeRankCategory(c) = %s, wanted Straight", DescribeRankCategory(c2)) 19 } 20 } 21 22 func BenchmarkEvaluateAllFiveCards(b *testing.B) { 23 var a uint8 24 for a = 0; a < 48; a++ { 25 for q := a + 1; q < 49; q++ { 26 for c := q + 1; c < 50; c++ { 27 for d := c + 1; d < 51; d++ { 28 for e := d + 1; e < 52; e++ { 29 EvaluateCards(NewCardFromId(a), NewCardFromId(q), NewCardFromId(c), NewCardFromId(d), NewCardFromId(e)) 30 } 31 } 32 } 33 } 34 } 35 } 36 37 func BenchmarkEvaluateAllSixCards(b *testing.B) { 38 var a uint8 39 for a = 0; a < 47; a++ { 40 for q := a + 1; q < 48; q++ { 41 for c := q + 1; c < 49; c++ { 42 for d := c + 1; d < 50; d++ { 43 for e := d + 1; e < 51; e++ { 44 for f := e + 1; f < 52; f++ { 45 EvaluateCards(NewCardFromId(a), NewCardFromId(q), NewCardFromId(c), NewCardFromId(d), NewCardFromId(e), NewCardFromId(f)) 46 } 47 } 48 } 49 } 50 } 51 } 52 } 53 54 func BenchmarkEvaluateAllSevenCards(b *testing.B) { 55 var a uint8 56 for a = 0; a < 46; a++ { 57 for q := a + 1; q < 47; q++ { 58 for c := q + 1; c < 48; c++ { 59 for d := c + 1; d < 49; d++ { 60 for e := d + 1; e < 50; e++ { 61 for f := e + 1; f < 51; f++ { 62 for g := f + 1; g < 52; g++ { 63 EvaluateCards(NewCardFromId(a), NewCardFromId(q), NewCardFromId(c), NewCardFromId(d), NewCardFromId(e), NewCardFromId(f), NewCardFromId(g)) 64 } 65 } 66 } 67 } 68 } 69 } 70 } 71 }