public void given_the_first_week_of_the_season_when_no_weeks_have_been_played_then_the_initial_averages_should_print() { Team team1 = CreateTeam("team1"); Team team2 = CreateTeam("team2"); Player player1 = CreatePlayer("M", 1, "player1", team1, 150); Player player2 = CreatePlayer("M", 2, "player2", team1, 150); Player player3 = CreatePlayer("M", 3, "player3", team2, 200); Player player4 = CreatePlayer("M", 4, "player4", team2, 200); List<Player> playersOnTeam1 = new List<Player> { player1, player2 }; List<Player> playersOnTeam2 = new List<Player> { player3, player4 }; MatchupReportTeamData printMatchupData = new MatchupsData().GetTeamDataForMatchup(playersOnTeam1, playersOnTeam2, new List<WeeklyScore>(), 1); Assert.That(printMatchupData.Team1Average, Is.EqualTo(300)); Assert.That(printMatchupData.Team1Handicap, Is.EqualTo(100)); Assert.That(printMatchupData.Team2Average, Is.EqualTo(400)); Assert.That(printMatchupData.Team2Handicap, Is.EqualTo(0)); }
public void given_the_second_week_of_the_season_when_one_week_has_been_played_then_the_average_from_week_one_should_print() { Team team1 = CreateTeam("team1"); Team team2 = CreateTeam("team2"); Player player1 = CreatePlayer("M", 1, "player1", team1, 150); Player player2 = CreatePlayer("M", 2, "player2", team1, 150); Player player3 = CreatePlayer("M", 3, "player3", team2, 200); Player player4 = CreatePlayer("M", 4, "player4", team2, 200); List<Player> playersOnTeam1 = new List<Player> { player1, player2 }; List<Player> playersOnTeam2 = new List<Player> { player3, player4 }; Week week = CreateWeek(1, "week 1"); WeeklyScore scoreForPlayer1 = CreateWeeklyScore(100, 110, 120, player1, player1.Team, week); WeeklyScore scoreForPlayer2 = CreateWeeklyScore(100, 110, 120, player2, player2.Team, week); WeeklyScore scoreForPlayer3 = CreateWeeklyScore(200, 210, 220, player3, player3.Team, week); WeeklyScore scoreForPlayer4 = CreateWeeklyScore(200, 210, 220, player4, player4.Team, week); List<WeeklyScore> scores = new List<WeeklyScore> { scoreForPlayer1, scoreForPlayer2, scoreForPlayer3, scoreForPlayer4 }; MatchupReportTeamData printMatchupData = new MatchupsData().GetTeamDataForMatchup(playersOnTeam1, playersOnTeam2, scores, 2); Assert.That(printMatchupData.Team1Average, Is.EqualTo(220)); Assert.That(printMatchupData.Team1Handicap, Is.EqualTo(200)); Assert.That(printMatchupData.Team2Average, Is.EqualTo(420)); Assert.That(printMatchupData.Team2Handicap, Is.EqualTo(0)); }
public void given_the_third_week_of_the_season_when_two_weeks_has_been_played_then_the_average_from_week_three_should_print() { Team team1 = CreateTeam("team1"); Team team2 = CreateTeam("team2"); Player player1 = CreatePlayer("M", 1, "player1", team1, 150); Player player2 = CreatePlayer("M", 2, "player2", team1, 150); Player player3 = CreatePlayer("M", 3, "player3", team2, 200); Player player4 = CreatePlayer("M", 4, "player4", team2, 200); List<Player> playersOnTeam1 = new List<Player> { player1, player2 }; List<Player> playersOnTeam2 = new List<Player> { player3, player4 }; Week week1 = CreateWeek(1, "week 1"); Week week2 = CreateWeek(2, "week 2"); WeeklyScore scoreForPlayer1Week1 = CreateWeeklyScore(106, 109, 165, player1, player1.Team, week1); WeeklyScore scoreForPlayer2Week1 = CreateWeeklyScore(225, 201, 195, player2, player2.Team, week1); WeeklyScore scoreForPlayer3Week1 = CreateWeeklyScore(106, 175, 164, player3, player3.Team, week1); WeeklyScore scoreForPlayer4Week1 = CreateWeeklyScore(106, 155, 204, player4, player4.Team, week1); WeeklyScore scoreForPlayer1Week2 = CreateWeeklyScore(156, 199, 204, player1, player1.Team, week2); WeeklyScore scoreForPlayer2Week2 = CreateWeeklyScore(122, 126, 165, player2, player2.Team, week2); WeeklyScore scoreForPlayer3Week2 = CreateWeeklyScore(197, 167, 175, player3, player3.Team, week2); WeeklyScore scoreForPlayer4Week2 = CreateWeeklyScore(100, 165, 201, player4, player4.Team, week2); List<WeeklyScore> scores = new List<WeeklyScore> { scoreForPlayer1Week1, scoreForPlayer2Week1, scoreForPlayer3Week1, scoreForPlayer4Week1, scoreForPlayer1Week2, scoreForPlayer2Week2, scoreForPlayer3Week2, scoreForPlayer4Week2 }; MatchupReportTeamData printMatchupData = new MatchupsData().GetTeamDataForMatchup(playersOnTeam1, playersOnTeam2, scores, 3); Assert.That(printMatchupData.Team1Average, Is.EqualTo(329)); Assert.That(printMatchupData.Team1Handicap, Is.EqualTo(0)); Assert.That(printMatchupData.Team2Average, Is.EqualTo(319)); Assert.That(printMatchupData.Team2Handicap, Is.EqualTo(10)); }
public void PrintMatchups() { MatchupsData getPrintMatchupsData = new MatchupsData(); PlayerStats playerAverage = new PlayerStats(); List<MatchupReportLineItem> lineItems = (from weeklyMatchup in _matchups where weeklyMatchup.Week.WeekNumber == SelectedWeek.WeekNumber select weeklyMatchup into matchup let team1Players = _players.Where(p => p.Team.Equals(matchup.TeamOne)).ToList() let team2Players = _players.Where(p => p.Team.Equals(matchup.TeamTwo)).ToList() let matchupReportData = getPrintMatchupsData.GetTeamDataForMatchup(team1Players, team2Players, _allScores, matchup.Week.WeekNumber) let playerAveragesDictionary = team1Players.Union(team2Players).ToDictionary( p => p, p => playerAverage.GetPlayerAverage(p, _allScores, SelectedWeek.WeekNumber - 1)) select new MatchupReportLineItem(matchupReportData, playerAveragesDictionary)).ToList(); new PrintMatchupsReport().Print(lineItems); }