go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/experiments/matchmaker/pkg/sim/main_test.go (about) 1 /* 2 3 Copyright (c) 2024 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package sim 9 10 import ( 11 c9s "go.charczuk.com/sdk/collections" 12 "go.charczuk.com/sdk/uuid" 13 ) 14 15 func mockPlayerNoHistory() *Player { 16 p := new(Player) 17 p.ID = uuid.V4() 18 p.Recent = new(c9s.Queue[*Game]) 19 p.Rating = 1400 20 p.Wins = 0 21 p.Games = 0 22 return p 23 } 24 25 func mockPlayer0() *Player { 26 p := new(Player) 27 p.ID = uuid.V4() 28 p.Recent = new(c9s.Queue[*Game]) 29 p.Rating = 1400 30 p.Wins = 2 31 p.Games = 3 32 return p 33 } 34 35 func mockPlayer1() *Player { 36 p := new(Player) 37 p.ID = uuid.V4() 38 p.Recent = new(c9s.Queue[*Game]) 39 p.Rating = 1800 40 p.Wins = 1 41 p.Games = 2 42 return p 43 } 44 45 func mockGame(p *Player, playerTeam, outcome Team) *Game { 46 teamA := make(PlayerLookup) 47 teamB := make(PlayerLookup) 48 if playerTeam == TeamA { 49 teamA.Add(p) 50 } else { 51 teamB.Add(p) 52 } 53 return &Game{ 54 TeamA: teamA, 55 TeamB: teamB, 56 RatingTeamA: 1100, 57 RatingTeamB: 1200, 58 Outcome: outcome, 59 } 60 } 61 62 func team(players ...*Player) PlayerLookup { 63 return NewLookup(players) 64 }