public void Build_Using2Competitions_With4UniqueTeams_Returns4PoolStageTableRows()
        {
            // 1. Arrange
            var simulator = new Core.PoolStageSimulator(
                new SoccerCompetitiontManager()
                );

            // 2. Act
            foreach (var competitionResult in _2CompetitionResults_With4UniqueTeams_Returns4PoolStageTableRows)
            {
                _poolStageTableRowsBuilder.Add(competitionResult);
            }
            var poolStageTableRows = _poolStageTableRowsBuilder.Build();

            // 3. Assert
            Assert.AreEqual(4, poolStageTableRows.Count);
        }
Beispiel #2
0
        public void BestTeamsWinMostOfTheTimes()
        {
            // 1. Arrange
            var simulator = new Core.PoolStageSimulator(
                new SoccerCompetitiontManager()
                );

            // 2. Act
            var totalTimesTeamsGotOnExpectedPlaceBasedOnStrength = 0;

            for (int simulationIndex = 0; simulationIndex < 10; simulationIndex++)
            {
                var results           = simulator.Play(_teamsFromBestToWorst);
                var teamsFrom1stTo4th = new List <Team>
                {
                    results[1 - 1].Team,
                    results[2 - 1].Team,
                    results[3 - 1].Team,
                    results[4 - 1].Team,
                };
                var didTeamsGetExpectedPlacesBasedOnStrength = true;
                for (int i = 0; i < teamsFrom1stTo4th.Count; i++)
                {
                    if (teamsFrom1stTo4th[i] != _teamsFromBestToWorst[i])
                    {
                        didTeamsGetExpectedPlacesBasedOnStrength = false;
                        break;
                    }
                }
                if (didTeamsGetExpectedPlacesBasedOnStrength)
                {
                    totalTimesTeamsGotOnExpectedPlaceBasedOnStrength++;
                }
            }

            // 3. Assert
            // Ensure that expected places are sorted based on team strength
            Assert.IsTrue(totalTimesTeamsGotOnExpectedPlaceBasedOnStrength > 2);
        }