Ejemplo n.º 1
0
        public void AllocateTournamentPoints_ElevenPlayers_Get22PointsFor1st()
        {
            // arrange
            var player1  = Substitute.For <IPlayer>();
            var player2  = Substitute.For <IPlayer>();
            var player3  = Substitute.For <IPlayer>();
            var player4  = Substitute.For <IPlayer>();
            var player5  = Substitute.For <IPlayer>();
            var player6  = Substitute.For <IPlayer>();
            var player7  = Substitute.For <IPlayer>();
            var player8  = Substitute.For <IPlayer>();
            var player9  = Substitute.For <IPlayer>();
            var player10 = Substitute.For <IPlayer>();
            var player11 = Substitute.For <IPlayer>();


            var players = new List <IPlayer> {
                player1,
                player2,
                player3,
                player4,
                player5,
                player6,
                player7,
                player8,
                player9,
                player10,
                player11
            };

            var tournament = new Tournament(players);

            tournament.TournamentTable[player1].GamePoints  = 3;
            tournament.TournamentTable[player2].GamePoints  = 2;
            tournament.TournamentTable[player3].GamePoints  = 1;
            tournament.TournamentTable[player4].GamePoints  = 5;
            tournament.TournamentTable[player5].GamePoints  = 4;
            tournament.TournamentTable[player6].GamePoints  = 8;
            tournament.TournamentTable[player7].GamePoints  = 5;
            tournament.TournamentTable[player8].GamePoints  = 7;
            tournament.TournamentTable[player9].GamePoints  = 14;
            tournament.TournamentTable[player10].GamePoints = 10;
            tournament.TournamentTable[player11].GamePoints = 15;

            // act
            tournament.AllocateTournamentPoints();

            // assert
            Assert.That(tournament.TournamentTable[player1].TournamentPoints, Is.EqualTo(6));
            Assert.That(tournament.TournamentTable[player2].TournamentPoints, Is.EqualTo(4));
            Assert.That(tournament.TournamentTable[player3].TournamentPoints, Is.EqualTo(2));
            Assert.That(tournament.TournamentTable[player4].TournamentPoints, Is.EqualTo(12));
            Assert.That(tournament.TournamentTable[player5].TournamentPoints, Is.EqualTo(8));
            Assert.That(tournament.TournamentTable[player6].TournamentPoints, Is.EqualTo(16));
            Assert.That(tournament.TournamentTable[player7].TournamentPoints, Is.EqualTo(12));
            Assert.That(tournament.TournamentTable[player8].TournamentPoints, Is.EqualTo(14));
            Assert.That(tournament.TournamentTable[player9].TournamentPoints, Is.EqualTo(20));
            Assert.That(tournament.TournamentTable[player10].TournamentPoints, Is.EqualTo(18));
            Assert.That(tournament.TournamentTable[player11].TournamentPoints, Is.EqualTo(22));
        }
Ejemplo n.º 2
0
        public void AllocateTournamentPoints_ThreePlayers_Get6PointsFor1st4PointsFor2nd2PointsFor3rd()
        {
            // arrange
            var player1 = Substitute.For <IPlayer>();
            var player2 = Substitute.For <IPlayer>();
            var player3 = Substitute.For <IPlayer>();

            var players = new List <IPlayer> {
                player1,
                player2,
                player3
            };

            var tournament = new Tournament(players);

            tournament.TournamentTable[player1].GamePoints = 5;
            tournament.TournamentTable[player2].GamePoints = 7;
            tournament.TournamentTable[player3].GamePoints = 8;

            // act
            tournament.AllocateTournamentPoints();

            // assert
            Assert.That(tournament.TournamentTable[player1].TournamentPoints, Is.EqualTo(2));
            Assert.That(tournament.TournamentTable[player2].TournamentPoints, Is.EqualTo(4));
            Assert.That(tournament.TournamentTable[player3].TournamentPoints, Is.EqualTo(6));
        }
Ejemplo n.º 3
0
        public void AllocateTournamentPoints_TwoPlayersWithEqualGamePoints_1stGet6PointsEach2ndGets2Points()
        {
            // arrange
            var player1 = Substitute.For <IPlayer>();
            var player2 = Substitute.For <IPlayer>();
            var player3 = Substitute.For <IPlayer>();

            var players = new List <IPlayer> {
                player1,
                player2,
                player3
            };

            var tournament = new Tournament(players);

            tournament.TournamentTable[player1].GamePoints = 8;
            tournament.TournamentTable[player2].GamePoints = 4;
            tournament.TournamentTable[player3].GamePoints = 8;

            // act
            tournament.AllocateTournamentPoints();

            // assert
            Assert.That(tournament.TournamentTable[player1].TournamentPoints, Is.EqualTo(6));
            Assert.That(tournament.TournamentTable[player2].TournamentPoints, Is.EqualTo(2));
            Assert.That(tournament.TournamentTable[player3].TournamentPoints, Is.EqualTo(6));
        }
Ejemplo n.º 4
0
        public void RankPlayers_FivePlayers_ListInDecendingOrderByGamePoints()
        {
            // arrange
            var player1 = Substitute.For <IPlayer>();
            var player2 = Substitute.For <IPlayer>();
            var player3 = Substitute.For <IPlayer>();
            var player4 = Substitute.For <IPlayer>();
            var player5 = Substitute.For <IPlayer>();

            var players = new List <IPlayer> {
                player1,
                player2,
                player3,
                player4,
                player5
            };

            var tournament = new Tournament(players);

            tournament.TournamentTable[player1].GamePoints = 5;
            tournament.TournamentTable[player2].GamePoints = 6;
            tournament.TournamentTable[player3].GamePoints = 10;
            tournament.TournamentTable[player4].GamePoints = 10;
            tournament.TournamentTable[player5].GamePoints = 2;

            tournament.AllocateTournamentPoints();

            // act
            var resultList = tournament.RankPlayers();

            // assert
            Assert.That(resultList[0].Key, Is.EqualTo(player3));
            Assert.That(resultList[0].Value.TournamentPoints, Is.EqualTo(10));

            Assert.That(resultList[1].Key, Is.EqualTo(player4));
            Assert.That(resultList[1].Value.TournamentPoints, Is.EqualTo(10));

            Assert.That(resultList[2].Key, Is.EqualTo(player2));
            Assert.That(resultList[2].Value.TournamentPoints, Is.EqualTo(6));

            Assert.That(resultList[3].Key, Is.EqualTo(player1));
            Assert.That(resultList[3].Value.TournamentPoints, Is.EqualTo(4));

            Assert.That(resultList[4].Key, Is.EqualTo(player5));
            Assert.That(resultList[4].Value.TournamentPoints, Is.EqualTo(2));
        }
Ejemplo n.º 5
0
        public void AllocateTournamentPoints_TwoPlayers_Get4PointsFor1stPlace2PointsFor2nd()
        {
            // arrange
            var player1 = Substitute.For <IPlayer>();
            var player2 = Substitute.For <IPlayer>();

            var players = new List <IPlayer> {
                player1,
                player2
            };

            var tournament = new Tournament(players);

            tournament.TournamentTable[player1].GamePoints = 3;
            tournament.TournamentTable[player2].GamePoints = 9;

            // act
            tournament.AllocateTournamentPoints();

            // assert
            Assert.That(tournament.TournamentTable[player1].TournamentPoints, Is.EqualTo(2));
            Assert.That(tournament.TournamentTable[player2].TournamentPoints, Is.EqualTo(4));
        }
Ejemplo n.º 6
0
        public void AllocateTournamentPoints_EqualGamePoints_ShouldGet4PointsEach()
        {
            // arrange
            var player1 = Substitute.For <IPlayer>();
            var player2 = Substitute.For <IPlayer>();

            var players = new List <IPlayer> {
                player1,
                player2
            };

            var tournament = new Tournament(players);

            tournament.TournamentTable[player1].GamePoints = 6;
            tournament.TournamentTable[player2].GamePoints = 6;

            // act
            tournament.AllocateTournamentPoints();

            // assert
            Assert.That(tournament.TournamentTable[player1].TournamentPoints, Is.EqualTo(4));
            Assert.That(tournament.TournamentTable[player2].TournamentPoints, Is.EqualTo(4));
        }