Ejemplo n.º 1
0
        public void GenerateTeams_GivenEvenPlayers_EvenSplitReturned(int numberOfPlayers)
        {
            IShuffler shuffler = A.Fake<IShuffler>();
            TeamGenerator teamGenerator = new TeamGenerator(shuffler);

            List<Player> selectedPlayers = new List<Player>();

            for (int i = 1; i<= numberOfPlayers; i++)
            {
                selectedPlayers.Add(new Player() { Id = i, Name = "Name" + i, Points = 1, GamesPlayed = 1 });
            }

            var result = teamGenerator.GenerateTeams(selectedPlayers);

            result.Item1.Count().Should().Be(numberOfPlayers / 2);
            result.Item2.Count().Should().Be(numberOfPlayers / 2);
        }
Ejemplo n.º 2
0
        public void GenerateTeams_GivenFourPlayers_PerfectSolutionsExist_PerfectSolutionFound(
            int p1, int g1,
            int p2, int g2,
            int p3, int g3,
            int p4, int g4)
        {
            IShuffler shuffler = A.Fake<IShuffler>();
            TeamGenerator teamGenerator = new TeamGenerator(shuffler);

            Player player1 = new Player() { Id = 1, Name = "Name1", Points = p1, GamesPlayed = g1 };
            Player player2 = new Player() { Id = 2, Name = "Name2", Points = p2, GamesPlayed = g2 };
            Player player3 = new Player() { Id = 3, Name = "Name3", Points = p3, GamesPlayed = g3 };
            Player player4 = new Player() { Id = 4, Name = "Name4", Points = p4, GamesPlayed = g4 };

            List<Player> selectedPlayers = new List<Player> { player1, player2, player3, player4 };

            var result = teamGenerator.GenerateTeams(selectedPlayers);

            result.Item1.Sum(p => p.PointsPerGame).Should().Be(1);
            result.Item2.Sum(p => p.PointsPerGame).Should().Be(1);
        }
Ejemplo n.º 3
0
        public void GenerateTeams_GivenThreePlayers_PerfectSolutionsExist_PerfectSolutionFound(
            int p1, int g1,
            int p2, int g2,
            int p3, int g3)
        {
            IShuffler shuffler = A.Fake<IShuffler>();
            TeamGenerator teamGenerator = new TeamGenerator(shuffler);

            Player player1 = new Player() { Id = 1, Name = "Name1", Points = p1, GamesPlayed = g1 };
            Player player2 = new Player() { Id = 2, Name = "Name2", Points = p2, GamesPlayed = g2 };
            Player player3 = new Player() { Id = 3, Name = "Name3", Points = p3, GamesPlayed = g3 };

            List<Player> selectedPlayers = new List<Player> { player1, player2, player3 };

            var result = teamGenerator.GenerateTeams(selectedPlayers);
            var r1 = (double)p1 / g1;
            var r2 = (double)p2 / g2;
            var r3 = (double)p3 / g3;
            double expected = (r1 + r2 + r3) / 2;

            result.Item1.Sum(p => p.PointsPerGame).Should().Be(expected);
            result.Item2.Sum(p => p.PointsPerGame).Should().Be(expected);
        }