dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit b606f058cd846eb9c90128bf8119b2c10de44d55
parent bf5879f9b098a4a421ccc64faf465ce49a834a36
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 18 Dec 2023 20:09:59 -0500

fix unit tests

Diffstat:
Mpkg/web/handlers/poker/poker_test.go | 87++++++++++++++++++++++++++++++++++++++++++-------------------------------------
1 file changed, 46 insertions(+), 41 deletions(-)

diff --git a/pkg/web/handlers/poker/poker_test.go b/pkg/web/handlers/poker/poker_test.go @@ -2,23 +2,28 @@ package poker import ( "dkforest/pkg/database" + "dkforest/pkg/utils" "github.com/stretchr/testify/assert" "testing" ) +func n(v uint64) utils.RWMtx[database.PokerChip] { + return utils.NewRWMtx[database.PokerChip](database.PokerChip(v)) +} + func Test_sortGameResults(t *testing.T) { - p1 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 10} - p2 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 20} - p3 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, GameBet: 30} - p4 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 100} + p1 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 10} + p2 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 20} + p3 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p3"}, GameBet: 30} + p4 := &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 100} arr := []GameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } sortGameResults(arr) - assert.Equal(t, "p1", arr[0].Players[0].Username) - assert.Equal(t, "p2", arr[0].Players[1].Username) - assert.Equal(t, "p3", arr[0].Players[2].Username) - assert.Equal(t, "p4", arr[0].Players[3].Username) + assert.Equal(t, database.Username("p1"), arr[0].Players[0].Username) + assert.Equal(t, database.Username("p2"), arr[0].Players[1].Username) + assert.Equal(t, database.Username("p3"), arr[0].Players[2].Username) + assert.Equal(t, database.Username("p4"), arr[0].Players[3].Username) } func Test_processPot(t *testing.T) { @@ -26,70 +31,70 @@ func Test_processPot(t *testing.T) { var arr []GameResult var res []PlayerGain - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 100, AllInMaxGain: 400} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 200, AllInMaxGain: 700} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, GameBet: 300, AllInMaxGain: 900} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 400} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 100, AllInMaxGain: 400} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 200, AllInMaxGain: 700} + p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p3"}, GameBet: 300, AllInMaxGain: 900} + p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 400} arr = []GameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } sortGameResults(arr) - res, _ = processPot(arr, 1000, 20, false) + res, _ = processPot(arr, 1000, 20, false, 4) assert.Equal(t, database.PokerChip(250), res[0].Gain) assert.Equal(t, database.PokerChip(250), res[1].Gain) assert.Equal(t, database.PokerChip(250), res[2].Gain) assert.Equal(t, database.PokerChip(250), res[3].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 10, AllInMaxGain: 40} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 20, AllInMaxGain: 70} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p3"}, GameBet: 300, AllInMaxGain: 630} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 400} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 10, AllInMaxGain: 40} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 20, AllInMaxGain: 70} + p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p3"}, GameBet: 300, AllInMaxGain: 630} + p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 400} arr = []GameResult{ {1, []*PokerPlayer{p2, p4, p1, p3}}, } sortGameResults(arr) - res, _ = processPot(arr, 1000, 20, false) + res, _ = processPot(arr, 1000, 20, false, 4) assert.Equal(t, database.PokerChip(40), res[0].Gain) assert.Equal(t, database.PokerChip(70), res[1].Gain) assert.Equal(t, database.PokerChip(445), res[2].Gain) assert.Equal(t, database.PokerChip(445), res[3].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p1"}, GameBet: 500} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 500, AllInMaxGain: 1000} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p1"}, GameBet: 500} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 500, AllInMaxGain: 1000} arr = []GameResult{ {1, []*PokerPlayer{p2}}, {2, []*PokerPlayer{p1}}, } sortGameResults(arr) - res, _ = processPot(arr, 1000, 20, false) + res, _ = processPot(arr, 1000, 20, false, 2) assert.Equal(t, 1, len(res)) assert.Equal(t, database.Username("p2"), res[0].Player.Username) assert.Equal(t, database.PokerChip(1000), res[0].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p1"}, GameBet: 5} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p2"}, GameBet: 5} - p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p3"}, GameBet: 5} - p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 1, Username: "p4"}, GameBet: 5} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p1"}, GameBet: 5} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p2"}, GameBet: 5} + p3 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p3"}, GameBet: 5} + p4 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(1), Username: "p4"}, GameBet: 5} //p5 = &PokerPlayer{Cash: 1, GameBet: 3, Folded: true, Username: "p5"} arr = []GameResult{ {1, []*PokerPlayer{p1, p2, p3}}, {2, []*PokerPlayer{p4}}, } sortGameResults(arr) - res, _ = processPot(arr, 23, 20, false) + res, _ = processPot(arr, 23, 20, false, 4) assert.Equal(t, 3, len(res)) assert.Equal(t, database.PokerChip(8), res[0].Gain) assert.Equal(t, database.PokerChip(8), res[1].Gain) assert.Equal(t, database.PokerChip(7), res[2].Gain) - p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p1"}, GameBet: 900, AllInMaxGain: 1560} - p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: 0, Username: "p2"}, GameBet: 640, AllInMaxGain: 1300} + p1 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p1"}, GameBet: 900, AllInMaxGain: 1560} + p2 = &PokerPlayer{SeatedPlayer: &SeatedPlayer{Cash: n(0), Username: "p2"}, GameBet: 640, AllInMaxGain: 1300} arr = []GameResult{ {1, []*PokerPlayer{p2}}, {2, []*PokerPlayer{p1}}, } sortGameResults(arr) - res, _ = processPot(arr, 1560, 20, false) + res, _ = processPot(arr, 1560, 20, false, 2) assert.Equal(t, 2, len(res)) assert.Equal(t, database.PokerChip(1300), res[0].Gain) assert.Equal(t, database.PokerChip(260), res[1].Gain) @@ -105,20 +110,20 @@ func Test_isRoundSettled(t *testing.T) { want bool }{ {"1", args{players: []*PokerPlayer{ - {Bet: 10, SeatedPlayer: &SeatedPlayer{Cash: 0}}, - {Bet: 20, SeatedPlayer: &SeatedPlayer{Cash: 0}}, - {Bet: 30, SeatedPlayer: &SeatedPlayer{Cash: 1}}, - {Bet: 30, SeatedPlayer: &SeatedPlayer{Cash: 1}}}}, true}, + {Bet: n(10), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, + {Bet: n(20), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, + {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}, + {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}}}, true}, {"2", args{players: []*PokerPlayer{ - {Bet: 100, SeatedPlayer: &SeatedPlayer{Cash: 0}}, - {Bet: 20, SeatedPlayer: &SeatedPlayer{Cash: 0}}, - {Bet: 30, SeatedPlayer: &SeatedPlayer{Cash: 1}}, - {Bet: 30, SeatedPlayer: &SeatedPlayer{Cash: 1}}}}, false}, + {Bet: n(100), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, + {Bet: n(20), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, + {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}, + {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}}}, false}, {"3", args{players: []*PokerPlayer{ - {Bet: 10, SeatedPlayer: &SeatedPlayer{Cash: 0}}, - {Bet: 200, SeatedPlayer: &SeatedPlayer{Cash: 0}}, - {Bet: 30, SeatedPlayer: &SeatedPlayer{Cash: 1}}, - {Bet: 30, SeatedPlayer: &SeatedPlayer{Cash: 1}}}}, false}, + {Bet: n(10), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, + {Bet: n(200), SeatedPlayer: &SeatedPlayer{Cash: n(0)}}, + {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}, + {Bet: n(30), SeatedPlayer: &SeatedPlayer{Cash: n(1)}}}}, false}, // TODO: Add test cases. } for _, tt := range tests {