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  }