package tests

import (
	"testing"

	"github.com/akiver/cs-demo-analyzer/pkg/api"
	"github.com/akiver/cs-demo-analyzer/pkg/api/constants"
	"github.com/akiver/cs-demo-analyzer/tests/assertion"
	"github.com/akiver/cs-demo-analyzer/tests/fake"
	"github.com/akiver/cs-demo-analyzer/tests/testsutils"

	"github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/common"
	"github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events"
)

// Demo containing 1 tactical timeout, multiple players disconnection, BOT overtake, suicides.
func TestValve_Match730_003402256765125919145_0103110035_190_Nuke(t *testing.T) {
	demoName := "valve_match730_003402256765125919145_0103110035_190_nuke"
	demoPath := testsutils.GetDemoPath("csgo", demoName)
	match, err := api.AnalyzeDemo(demoPath, api.AnalyzeDemoOptions{
		Source: constants.DemoSourceValve,
	})
	if err != nil {
		t.Error(err)
	}

	expectedRoundCount := 24
	expectedPlayerCount := 10
	expectedScoreTeamA := 8
	expectedScoreTeamB := 16
	expectedScoreFirstHalfTeamA := 3
	expectedScoreFirstHalfTeamB := 12
	expectedScoreSecondHalfTeamA := 5
	expectedScoreSecondHalfTeamB := 4
	expectedTeamNameA := "Team A"
	expectedTeamNameB := "Team B"
	expectedWinnerName := expectedTeamNameB
	expectedMaxRounds := 30

	if match.TeamA.Name != expectedTeamNameA {
		t.Errorf("expected team name A to be %s got %s", expectedTeamNameA, match.TeamA.Name)
	}
	if match.TeamB.Name != expectedTeamNameB {
		t.Errorf("expected team name B to be %s got %s", expectedTeamNameB, match.TeamB.Name)
	}
	if len(match.Rounds) != expectedRoundCount {
		t.Errorf("expected %d rounds but got %d", expectedRoundCount, len(match.Rounds))
	}
	if len(match.Players()) != expectedPlayerCount {
		t.Errorf("expected %d players but got %d", expectedPlayerCount, len(match.Players()))
	}
	if match.TeamA.Score != expectedScoreTeamA {
		t.Errorf("expected score team A to be %d got %d", expectedScoreTeamA, match.TeamA.Score)
	}
	if match.TeamB.Score != expectedScoreTeamB {
		t.Errorf("expected score team B to be %d got %d", expectedScoreTeamB, match.TeamB.Score)
	}
	if match.TeamA.ScoreFirstHalf != expectedScoreFirstHalfTeamA {
		t.Errorf("expected score first half team A to be %d got %d", expectedScoreFirstHalfTeamA, match.TeamA.ScoreFirstHalf)
	}
	if match.TeamB.ScoreFirstHalf != expectedScoreFirstHalfTeamB {
		t.Errorf("expected score first half team B to be %d got %d", expectedScoreFirstHalfTeamB, match.TeamB.ScoreFirstHalf)
	}
	if match.TeamA.ScoreSecondHalf != expectedScoreSecondHalfTeamA {
		t.Errorf("expected score second half team A to be %d got %d", expectedScoreSecondHalfTeamA, match.TeamA.ScoreSecondHalf)
	}
	if match.TeamB.ScoreSecondHalf != expectedScoreSecondHalfTeamB {
		t.Errorf("expected score second half team B to be %d got %d", expectedScoreSecondHalfTeamB, match.TeamB.ScoreSecondHalf)
	}
	if match.KillCount() != 179 {
		t.Errorf("expected %d kill count but got %d", 179, match.KillCount())
	}
	if match.ShotCount() != 3291 {
		t.Errorf("expected shot count to be %d but got %d", 3291, match.ShotCount())
	}
	if match.AssistCount() != 37 {
		t.Errorf("expected %d assist count but got %d", 37, match.AssistCount())
	}
	if match.Winner.Name != expectedWinnerName {
		t.Errorf("expected winner to be %s but got %s", expectedWinnerName, match.Winner.Name)
	}
	if match.MaxRounds != expectedMaxRounds {
		t.Errorf("expected max rounds to be %d but got %d", expectedMaxRounds, match.MaxRounds)
	}

	var players = []fake.FakePlayer{
		{
			SteamID64:     76561199003638064,
			Name:          "TheSmallJAT",
			KillCount:     7,
			AssistCount:   2,
			DeathCount:    15,
			Score:         23,
			Team:          match.TeamB,
			MvpCount:      1,
			HeadshotCount: 1,
			UtilityDamage: 0,
		},
		{
			SteamID64:     76561198273767826,
			Name:          "LIION974",
			KillCount:     20,
			AssistCount:   3,
			DeathCount:    16,
			Score:         60,
			Team:          match.TeamB,
			MvpCount:      5,
			HeadshotCount: 8,
			UtilityDamage: 0,
		},
		{
			SteamID64:     76561198892628768,
			Name:          "I'm gay and proud of it",
			KillCount:     24,
			AssistCount:   7,
			DeathCount:    18,
			Score:         60,
			Team:          match.TeamB,
			MvpCount:      3,
			HeadshotCount: 15,
			UtilityDamage: 15,
		},
		{
			SteamID64:     76561198160035572,
			Name:          "Maucier",
			KillCount:     23,
			AssistCount:   5,
			DeathCount:    15,
			Score:         62,
			Team:          match.TeamB,
			MvpCount:      5,
			HeadshotCount: 9,
			UtilityDamage: 3,
		},
		{
			SteamID64:     76561198287171166,
			Name:          "iRoz0x",
			KillCount:     23,
			AssistCount:   7,
			DeathCount:    18,
			Score:         55,
			Team:          match.TeamB,
			MvpCount:      2,
			HeadshotCount: 12,
			UtilityDamage: 0,
		},
		{
			SteamID64:     76561198799173940,
			Name:          "gorilla",
			KillCount:     23,
			AssistCount:   2,
			DeathCount:    21,
			Score:         53,
			Team:          match.TeamA,
			MvpCount:      2,
			HeadshotCount: 6,
			UtilityDamage: 0,
		},
		{
			SteamID64:     76561198195829963,
			Name:          "seveN",
			KillCount:     5,
			AssistCount:   2,
			DeathCount:    10,
			Score:         14,
			Team:          match.TeamA,
			MvpCount:      1,
			HeadshotCount: 1,
			UtilityDamage: 0,
		},
		{
			SteamID64:     76561198161973676,
			Name:          "areobatman",
			KillCount:     5,
			AssistCount:   4,
			DeathCount:    18,
			Score:         13,
			Team:          match.TeamA,
			MvpCount:      1,
			HeadshotCount: 1,
			UtilityDamage: 23,
		},
		{
			SteamID64:     76561198445937943,
			Name:          "romania bad",
			KillCount:     21,
			AssistCount:   3,
			DeathCount:    22,
			Score:         52,
			Team:          match.TeamA,
			MvpCount:      2,
			HeadshotCount: 6,
			UtilityDamage: 0,
		},
		{
			SteamID64:     76561198831417913,
			Name:          "Master Flevo",
			KillCount:     16,
			AssistCount:   1,
			DeathCount:    20,
			Score:         43,
			Team:          match.TeamA,
			MvpCount:      2,
			HeadshotCount: 4,
			UtilityDamage: 0,
		},
	}

	var rounds = []fake.FakeRound{
		{
			Number:            1,
			StartTick:         6981,
			StartFrame:        3501,
			FreezeTimeEndTick: 7937,
			EndTick:           10929,
			TeamAStartMoney:   4000,
			TeamBStartMoney:   4000,
			TeamAEconomyType:  constants.EconomyTypePistol,
			TeamBEconomyType:  constants.EconomyTypePistol,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        0,
			TeamBScore:        1,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            2,
			StartTick:         11383,
			StartFrame:        5700,
			FreezeTimeEndTick: 12339,
			EndTick:           18051,
			TeamAStartMoney:   11800,
			TeamBStartMoney:   20100,
			EndReason:         events.RoundEndReasonTargetBombed,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        0,
			TeamBScore:        2,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            3,
			StartTick:         18502,
			StartFrame:        9258,
			FreezeTimeEndTick: 19458,
			EndTick:           24923,
			TeamAStartMoney:   23800,
			TeamBStartMoney:   19400,
			EndReason:         events.RoundEndReasonTargetBombed,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        0,
			TeamBScore:        3,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            4,
			StartTick:         25375,
			StartFrame:        12690,
			FreezeTimeEndTick: 26331,
			EndTick:           28821,
			TeamAStartMoney:   19500,
			TeamBStartMoney:   30400,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        0,
			TeamBScore:        4,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            5,
			StartTick:         29276,
			StartFrame:        14638,
			FreezeTimeEndTick: 30232,
			EndTick:           33556,
			TeamAStartMoney:   22850,
			TeamBStartMoney:   33600,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        0,
			TeamBScore:        5,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            6,
			StartTick:         34012,
			StartFrame:        17004,
			FreezeTimeEndTick: 34968,
			EndTick:           42118,
			TeamAStartMoney:   21050,
			TeamBStartMoney:   43000,
			EndReason:         events.RoundEndReasonCTWin,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        1,
			TeamBScore:        5,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            7,
			StartTick:         42572,
			StartFrame:        21279,
			FreezeTimeEndTick: 43528,
			EndTick:           47078,
			TeamAStartMoney:   21300,
			TeamBStartMoney:   38150,
			EndReason:         events.RoundEndReasonBombDefused,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        2,
			TeamBScore:        5,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            8,
			StartTick:         47526,
			StartFrame:        23754,
			FreezeTimeEndTick: 48487,
			EndTick:           53323,
			TeamAStartMoney:   24950,
			TeamBStartMoney:   30250,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        2,
			TeamBScore:        6,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            9,
			StartTick:         53773,
			StartFrame:        26876,
			FreezeTimeEndTick: 54734,
			EndTick:           61346,
			TeamAStartMoney:   23400,
			TeamBStartMoney:   28450,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        2,
			TeamBScore:        7,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            10,
			StartTick:         61796,
			StartFrame:        30883,
			FreezeTimeEndTick: 62756,
			EndTick:           67740,
			TeamAStartMoney:   18650,
			TeamBStartMoney:   27750,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        2,
			TeamBScore:        8,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            11,
			StartTick:         68193,
			StartFrame:        34078,
			FreezeTimeEndTick: 69147,
			EndTick:           74613,
			TeamAStartMoney:   32350,
			TeamBStartMoney:   33750,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        2,
			TeamBScore:        9,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            12,
			StartTick:         75067,
			StartFrame:        37509,
			FreezeTimeEndTick: 76023,
			EndTick:           80381,
			TeamAStartMoney:   23250,
			TeamBStartMoney:   39250,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        2,
			TeamBScore:        10,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            13,
			StartTick:         80835,
			StartFrame:        40391,
			FreezeTimeEndTick: 81791,
			EndTick:           88137,
			TeamAStartMoney:   18850,
			TeamBStartMoney:   42650,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        2,
			TeamBScore:        11,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            14,
			StartTick:         88591,
			StartFrame:        44263,
			FreezeTimeEndTick: 89547,
			EndTick:           94221,
			TeamAStartMoney:   22550,
			TeamBStartMoney:   43250,
			EndReason:         events.RoundEndReasonBombDefused,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        3,
			TeamBScore:        11,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            15,
			StartTick:         94669,
			StartFrame:        47300,
			FreezeTimeEndTick: 95629,
			EndTick:           98619,
			TeamAStartMoney:   20000,
			TeamBStartMoney:   33950,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        3,
			TeamBScore:        12,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamCounterTerrorists,
			TeamBSide:         common.TeamTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            16,
			StartTick:         99579,
			StartFrame:        49752,
			FreezeTimeEndTick: 100539,
			EndTick:           105031,
			TeamAStartMoney:   4000,
			TeamBStartMoney:   4000,
			TeamAEconomyType:  constants.EconomyTypePistol,
			TeamBEconomyType:  constants.EconomyTypePistol,
			EndReason:         events.RoundEndReasonCTWin,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        3,
			TeamBScore:        13,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            17,
			StartTick:         105481,
			StartFrame:        52700,
			FreezeTimeEndTick: 106442,
			EndTick:           110964,
			TeamAStartMoney:   12400,
			TeamBStartMoney:   19800,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        4,
			TeamBScore:        13,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            18,
			StartTick:         111418,
			StartFrame:        55664,
			FreezeTimeEndTick: 112374,
			EndTick:           116582,
			TeamAStartMoney:   21250,
			TeamBStartMoney:   10450,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        5,
			TeamBScore:        13,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            19,
			StartTick:         117030,
			StartFrame:        58470,
			FreezeTimeEndTick: 117991,
			EndTick:           123845,
			TeamAStartMoney:   28050,
			TeamBStartMoney:   17250,
			EndReason:         events.RoundEndReasonCTWin,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        5,
			TeamBScore:        14,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            20,
			StartTick:         124295,
			StartFrame:        62098,
			FreezeTimeEndTick: 125256,
			EndTick:           130470,
			TeamAStartMoney:   15050,
			TeamBStartMoney:   18800,
			EndReason:         events.RoundEndReasonCTWin,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        5,
			TeamBScore:        15,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            21,
			StartTick:         134759,
			StartFrame:        67324,
			FreezeTimeEndTick: 135719,
			EndTick:           140211,
			TeamAStartMoney:   14550,
			TeamBStartMoney:   23550,
			EndReason:         events.RoundEndReasonTargetBombed,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        6,
			TeamBScore:        15,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            22,
			StartTick:         140664,
			StartFrame:        70272,
			FreezeTimeEndTick: 141618,
			EndTick:           144406,
			TeamAStartMoney:   27000,
			TeamBStartMoney:   16800,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        7,
			TeamBScore:        15,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            23,
			StartTick:         144859,
			StartFrame:        72366,
			FreezeTimeEndTick: 145813,
			EndTick:           150245,
			TeamAStartMoney:   26800,
			TeamBStartMoney:   14150,
			EndReason:         events.RoundEndReasonTerroristsWin,
			WinnerSide:        common.TeamTerrorists,
			TeamAScore:        8,
			TeamBScore:        15,
			WinnerName:        expectedTeamNameA,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
		{
			Number:            24,
			StartTick:         150699,
			StartFrame:        75285,
			FreezeTimeEndTick: 151655,
			EndTick:           155317,
			TeamAStartMoney:   35100,
			TeamBStartMoney:   20750,
			EndReason:         events.RoundEndReasonCTWin,
			WinnerSide:        common.TeamCounterTerrorists,
			TeamAScore:        8,
			TeamBScore:        16,
			WinnerName:        expectedTeamNameB,
			TeamASide:         common.TeamTerrorists,
			TeamBSide:         common.TeamCounterTerrorists,
			TeamAName:         expectedTeamNameA,
			TeamBName:         expectedTeamNameB,
		},
	}

	var clutches = []api.Clutch{
		{
			RoundNumber:       1,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198195829963,
			ClutcherName:      "seveN",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       3,
			OpponentCount:     2,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198799173940,
			ClutcherName:      "gorilla",
			ClutcherSurvived:  false,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       4,
			OpponentCount:     3,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198161973676,
			ClutcherName:      "areobatman",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       5,
			OpponentCount:     3,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198161973676,
			ClutcherName:      "areobatman",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       6,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198892628768,
			ClutcherName:      "I'm gay and proud of it",
			ClutcherSurvived:  false,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       6,
			OpponentCount:     1,
			Side:              common.TeamCounterTerrorists,
			HasWon:            true,
			ClutcherSteamID64: 76561198161973676,
			ClutcherName:      "areobatman",
			ClutcherSurvived:  true,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       7,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561199003638064,
			ClutcherName:      "TheSmallJAT",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       8,
			OpponentCount:     3,
			Side:              common.TeamTerrorists,
			HasWon:            true,
			ClutcherSteamID64: 76561198273767826,
			ClutcherName:      "LIION974",
			ClutcherSurvived:  true,
			ClutcherKillCount: 3,
		},
		{
			RoundNumber:       8,
			OpponentCount:     1,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198161973676,
			ClutcherName:      "areobatman",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       9,
			OpponentCount:     4,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198445937943,
			ClutcherName:      "romania bad",
			ClutcherSurvived:  false,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       10,
			OpponentCount:     4,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198161973676,
			ClutcherName:      "areobatman",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       11,
			OpponentCount:     2,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198195829963,
			ClutcherName:      "seveN",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       12,
			OpponentCount:     3,
			Side:              common.TeamTerrorists,
			HasWon:            true,
			ClutcherSteamID64: 76561198160035572,
			ClutcherName:      "Maucier",
			ClutcherSurvived:  true,
			ClutcherKillCount: 3,
		},
		{
			RoundNumber:       12,
			OpponentCount:     1,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198799173940,
			ClutcherName:      "gorilla",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       13,
			OpponentCount:     2,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198161973676,
			ClutcherName:      "areobatman",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       14,
			OpponentCount:     4,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561199003638064,
			ClutcherName:      "TheSmallJAT",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       15,
			OpponentCount:     3,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198445937943,
			ClutcherName:      "romania bad",
			ClutcherSurvived:  false,
			ClutcherKillCount: 2,
		},
		{
			RoundNumber:       15,
			OpponentCount:     1,
			Side:              common.TeamTerrorists,
			HasWon:            true,
			ClutcherSteamID64: 76561199003638064,
			ClutcherName:      "TheSmallJAT",
			ClutcherSurvived:  true,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       16,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198831417913,
			ClutcherName:      "Master Flevo",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       17,
			OpponentCount:     3,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198160035572,
			ClutcherName:      "Maucier",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       18,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198160035572,
			ClutcherName:      "Maucier",
			ClutcherSurvived:  false,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       18,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            true,
			ClutcherSteamID64: 76561198799173940,
			ClutcherName:      "gorilla",
			ClutcherSurvived:  true,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       19,
			OpponentCount:     3,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198831417913,
			ClutcherName:      "Master Flevo",
			ClutcherSurvived:  false,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       20,
			OpponentCount:     3,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198799173940,
			ClutcherName:      "gorilla",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       21,
			OpponentCount:     2,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561199003638064,
			ClutcherName:      "TheSmallJAT",
			ClutcherSurvived:  true,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       21,
			OpponentCount:     1,
			Side:              common.TeamTerrorists,
			HasWon:            true,
			ClutcherSteamID64: 76561198799173940,
			ClutcherName:      "gorilla",
			ClutcherSurvived:  true,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       22,
			OpponentCount:     3,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198892628768,
			ClutcherName:      "I'm gay and proud of it",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
		{
			RoundNumber:       23,
			OpponentCount:     3,
			Side:              common.TeamCounterTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198892628768,
			ClutcherName:      "I'm gay and proud of it",
			ClutcherSurvived:  false,
			ClutcherKillCount: 1,
		},
		{
			RoundNumber:       24,
			OpponentCount:     2,
			Side:              common.TeamTerrorists,
			HasWon:            false,
			ClutcherSteamID64: 76561198799173940,
			ClutcherName:      "gorilla",
			ClutcherSurvived:  false,
			ClutcherKillCount: 0,
		},
	}

	var playerEconomies = []api.PlayerEconomy{
		{
			RoundNumber:    1,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     800,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     800,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198195829963,
			Name:           "seveN",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     800,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    1,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     4350,
			MoneySpent:     4300,
			EquipmentValue: 4500,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     4350,
			MoneySpent:     4000,
			EquipmentValue: 4200,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     3400,
			MoneySpent:     3300,
			EquipmentValue: 3500,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     3400,
			MoneySpent:     3400,
			EquipmentValue: 3400,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     4600,
			MoneySpent:     4400,
			EquipmentValue: 4600,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     2350,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198195829963,
			Name:           "seveN",
			StartMoney:     2050,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     2700,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     2650,
			MoneySpent:     300,
			EquipmentValue: 300,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    2,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     2050,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     3850,
			MoneySpent:     600,
			EquipmentValue: 5100,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     3850,
			MoneySpent:     0,
			EquipmentValue: 4200,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     3900,
			MoneySpent:     3900,
			EquipmentValue: 4100,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     3800,
			MoneySpent:     3000,
			EquipmentValue: 4700,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     4000,
			MoneySpent:     800,
			EquipmentValue: 5200,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     4750,
			MoneySpent:     4750,
			EquipmentValue: 4950,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198195829963,
			Name:           "seveN",
			StartMoney:     4450,
			MoneySpent:     4400,
			EquipmentValue: 4800,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     5100,
			MoneySpent:     1000,
			EquipmentValue: 3000,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     4750,
			MoneySpent:     4700,
			EquipmentValue: 4900,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    3,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     4750,
			MoneySpent:     4550,
			EquipmentValue: 4750,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     6750,
			MoneySpent:     4900,
			EquipmentValue: 5100,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     7950,
			MoneySpent:     650,
			EquipmentValue: 4200,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     4100,
			MoneySpent:     700,
			EquipmentValue: 5300,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     4600,
			MoneySpent:     4600,
			EquipmentValue: 4800,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     7000,
			MoneySpent:     4000,
			EquipmentValue: 4200,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     3500,
			MoneySpent:     2050,
			EquipmentValue: 3500,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198195829963,
			Name:           "seveN",
			StartMoney:     2950,
			MoneySpent:     2350,
			EquipmentValue: 2550,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     7000,
			MoneySpent:     5000,
			EquipmentValue: 2700,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     2950,
			MoneySpent:     2950,
			EquipmentValue: 3150,
			Type:           constants.EconomyTypeForceBuy,
		},
		{
			RoundNumber:    4,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     3100,
			MoneySpent:     2500,
			EquipmentValue: 3950,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     5100,
			MoneySpent:     4700,
			EquipmentValue: 4900,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     11150,
			MoneySpent:     2450,
			EquipmentValue: 5800,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     7250,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     3550,
			MoneySpent:     600,
			EquipmentValue: 5400,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     6550,
			MoneySpent:     900,
			EquipmentValue: 5100,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     5450,
			MoneySpent:     4750,
			EquipmentValue: 4950,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198195829963,
			Name:           "seveN",
			StartMoney:     4000,
			MoneySpent:     3950,
			EquipmentValue: 4150, // Should be 3950, the parser returns a wrong value
			Type:           constants.EconomyTypeForceBuy,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     5400,
			MoneySpent:     4100,
			EquipmentValue: 4300,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     3400,
			MoneySpent:     2600,
			EquipmentValue: 2800,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    5,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     4600,
			MoneySpent:     4300,
			EquipmentValue: 4500,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    6,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     4700,
			MoneySpent:     2500,
			EquipmentValue: 2700,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber: 7,
			SteamID64:   76561198161973676,
			Name:        "areobatman",
			StartMoney:  6350,
			MoneySpent:  4100,
			// Should be 4500 and Full but he dropped weapons to his teammates and get back his weapon after the
			// delay used to detect players economy after the end of freeze time.
			EquipmentValue: 3550,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    8,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     5750,
			MoneySpent:     1400,
			EquipmentValue: 4600,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    9,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     6750,
			MoneySpent:     5500,
			EquipmentValue: 3650,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    10,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     4150,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    11,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     7550,
			MoneySpent:     4500,
			EquipmentValue: 4700,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    12,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     6450,
			MoneySpent:     4500,
			EquipmentValue: 4700,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    13,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     5350,
			MoneySpent:     2900,
			EquipmentValue: 3100,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    14,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     6450,
			MoneySpent:     6150,
			EquipmentValue: 4700,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    15,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     3800,
			MoneySpent:     800,
			EquipmentValue: 5900,
			Type:           constants.EconomyTypeFull,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     800,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     800,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		// "seveN" is not connected at the beginning of the round 16
		{
			RoundNumber:    16,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     800,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     800,
			MoneySpent:     700,
			EquipmentValue: 700,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    16,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     800,
			MoneySpent:     650,
			EquipmentValue: 850,
			Type:           constants.EconomyTypePistol,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561199003638064,
			Name:           "TheSmallJAT",
			StartMoney:     4050,
			MoneySpent:     3500,
			EquipmentValue: 3700,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198273767826,
			Name:           "LIION974",
			StartMoney:     4350,
			MoneySpent:     2650,
			EquipmentValue: 2850,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198892628768,
			Name:           "I'm gay and proud of it",
			StartMoney:     4000,
			MoneySpent:     0,
			EquipmentValue: 1350,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198160035572,
			Name:           "Maucier",
			StartMoney:     4000,
			MoneySpent:     4000,
			EquipmentValue: 4000,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198287171166,
			Name:           "iRoz0x",
			StartMoney:     3400,
			MoneySpent:     3350,
			EquipmentValue: 3550,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198799173940,
			Name:           "gorilla",
			StartMoney:     2950,
			MoneySpent:     2700,
			EquipmentValue: 2700,
			Type:           constants.EconomyTypeForceBuy,
		},
		// "seveN" is not connected at the beginning of the round 17
		{
			RoundNumber:    17,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     2700,
			MoneySpent:     2050,
			EquipmentValue: 2250,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198445937943,
			Name:           "romania bad",
			StartMoney:     2000,
			MoneySpent:     1500,
			EquipmentValue: 1500,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    17,
			SteamID64:      76561198831417913,
			Name:           "Master Flevo",
			StartMoney:     2050,
			MoneySpent:     1500,
			EquipmentValue: 1500,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    18,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     4500,
			MoneySpent:     2000,
			EquipmentValue: 3200,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    19,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     5750,
			MoneySpent:     3700,
			EquipmentValue: 3900,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    20,
			SteamID64:      76561198161973676,
			Name:           "areobatman",
			StartMoney:     3450,
			MoneySpent:     2050,
			EquipmentValue: 2250,
			Type:           constants.EconomyTypeSemi,
		},
		{
			RoundNumber:    21,
			SteamID64:      76561198161973676, // Timeout
			Name:           "areobatman",
			StartMoney:     3900,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
		{
			RoundNumber:    22,
			SteamID64:      76561198161973676, // Disconnected
			Name:           "areobatman",
			StartMoney:     7400,
			MoneySpent:     0,
			EquipmentValue: 200,
			Type:           constants.EconomyTypeEco,
		},
	}

	assertion.AssertClutches(t, match, clutches)
	assertion.AssertPlayers(t, match, players)
	assertion.AssertRounds(t, match, rounds)
	assertion.AssertPlayerEconomies(t, match, playerEconomies)
}
