Exemplo n.º 1
0
        public void WhenPlayersFromDifferentGroupsPlay()
        {
            var player1 = new Player("1");
            var player2 = new Player("2");
            var player3 = new Player("3");

            var player4 = new Player("4");
            var player5 = new Player("5");
            var player6 = new Player("6");
            var player7 = new Player("7");

            var player8 = new Player("8");
            var player9 = new Player("9");

            var matches =
                new[]
            {
                new FoosMatch(player1, player2),
                new FoosMatch(player2, player3),
                new FoosMatch(player4, player5),
                new FoosMatch(player5, player6),
                new FoosMatch(player6, player7),
                new FoosMatch(player8, player9),
                new FoosMatch(player4, player2),
                new FoosMatch(player8, player6),
            };


            var actual = LadderRanking.GetPlayersByRanking(matches).Select(p => p.Id).ToList();

            CollectionAssert.AreEqual(new[] { "1", "4", "2", "3", "5", "8", "6", "7", "9" }, actual.ToArray(),
                                      string.Join(",", actual));
        }
Exemplo n.º 2
0
        public void PerfTest()
        {
            IList <Player> players = new List <Player>();

            for (var i = 0; i < 30; i++)
            {
                players.Add(new Player(i.ToString()));
            }

            IList <FoosMatch> matches = new List <FoosMatch>();

            for (var i = 0; i < 28; i++)
            {
                matches.Add(new FoosMatch(players[i], players[i + 1]));
            }
            matches.Add(new FoosMatch(players[0], players[29]));

            var random = new Random();

            for (var i = 0; i < 2000; i++)
            {
                matches.Add(new FoosMatch(players[random.Next(0, 15)], players[new Random().Next(16, 29)]));
            }

            var actual = LadderRanking.GetPlayersByRanking(matches).Select(p => p.Id).ToList();

            Assert.AreEqual(30, actual.Count);
        }
Exemplo n.º 3
0
        public void WhenRankingTwoGamesBeatsOne()
        {
            var player1 = new Player("1");
            var player2 = new Player("2");

            var matches =
                new[]
            {
                new FoosMatch(player1, player2),
                new FoosMatch(player1, player2),
                new FoosMatch(player2, player1),
            };

            var actual = LadderRanking.GetPlayersByRanking(matches).Select(p => p.Id).ToList();

            CollectionAssert.AreEqual(new[] { "1", "2" }, actual.ToArray(), string.Join(",", actual));
        }
Exemplo n.º 4
0
        public void PlayersShouldBeRankedByResults()
        {
            var player1 = new Player("1");
            var player2 = new Player("2");
            var player3 = new Player("3");


            var matches =
                new[]
            {
                new FoosMatch(player1, player2),
                new FoosMatch(player1, player3),
                new FoosMatch(player1, player2),
                new FoosMatch(player3, player2),
            };

            var actual = LadderRanking.GetPlayersByRanking(matches).Select(p => p.Id).ToList();

            CollectionAssert.AreEqual(new[] { "1", "3", "2" }, actual.ToArray(), string.Join(",", actual));
        }
Exemplo n.º 5
0
        public void MatchesOnlyAffectRankingWhenLooserIsRankedBetterThanWinnerByMax2()
        {
            var player1 = new Player("1");
            var player2 = new Player("2");
            var player3 = new Player("3");
            var player4 = new Player("4");
            var player5 = new Player("5");

            //Ranking 1,2,3,4,5
            var matches =
                new[]
            {
                new FoosMatch(player1, player2),
                new FoosMatch(player2, player3),
                new FoosMatch(player3, player4),
                new FoosMatch(player4, player5),
                new FoosMatch(player5, player1)     //This match has no effect
            };

            var actual = LadderRanking.GetPlayersByRanking(matches).Select(p => p.Id).ToList();

            CollectionAssert.AreEqual(new[] { "1", "2", "3", "4", "5" }, actual.ToArray(), string.Join(",", actual));
        }
Exemplo n.º 6
0
        public void LooserShouldBeMoveDownByOne()
        {
            var player1 = new Player("1");
            var player2 = new Player("2");
            var player3 = new Player("3");
            var player4 = new Player("4");
            var player5 = new Player("5");

            //Ranking 1,2,3,4,5
            var matches =
                new[]
            {
                new FoosMatch(player1, player2),
                new FoosMatch(player2, player3),
                new FoosMatch(player3, player4),
                new FoosMatch(player4, player5),
                new FoosMatch(player5, player1),     //This match has no effect
                new FoosMatch(player3, player1)
            };

            var actual = LadderRanking.GetPlayersByRanking(matches).Select(p => p.Id).ToList();

            CollectionAssert.AreEqual(new[] { "3", "1", "2", "4", "5" }, actual.ToArray(), string.Join(",", actual));
        }