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  }