Пример #1
0
        public void PlayerShouldBeAbleToSwitchSelectedDoor()
        {
            var montyHall = new MontyHall();

            montyHall.PlayGame(true);
            //assert if switched
        }
Пример #2
0
        public void PlayerShouldSelectRandomDoor()
        {
            var montyHall = new MontyHall();

            montyHall.PlayGame(true);
            Assert.True(montyHall.Doors.Any(x => x.IsSelected));
        }
Пример #3
0
        public void StartingNewGameShouldPlaceAPrizeBehindRandomDoor()
        {
            var montyHall = new MontyHall();

            montyHall.PlayGame(true);
            Assert.True(montyHall.Doors.Any(x => x.IsPrize));
        }
Пример #4
0
        public void GameShouldSetUpDoorsWithNoPrize()
        {
            var montyHall = new MontyHall();

            Assert.False(montyHall.Doors[0].IsPrize);
            Assert.False(montyHall.Doors[1].IsPrize);
            Assert.False(montyHall.Doors[2].IsPrize);
        }
Пример #5
0
        public void HostShouldDisplayRemainingDoorNotContainingPrize()
        {
            var montyHall     = new MontyHall();
            var host          = new Host();
            var displayedDoor = host.DisplayRemainingDoorContainingNoPrize(montyHall.Doors);

            Assert.False(displayedDoor.IsPrize && displayedDoor.IsSelected);
        }
Пример #6
0
        public void PlayGameShouldReturnTrueIfChosenDoorIsPrize()
        {
            var montyHall = new MontyHall();
            var car       = new TestRng(2);
            var choice    = new TestRng(0);
            var player    = new Player(choice, 1);

            Assert.Equal(Prize.Car, montyHall.PlayGame(car, player));
        }
Пример #7
0
        public void CreateThreeDoorsAssignsPrizeToRandomDoor()
        {
            var montyHall  = new MontyHall();
            var doorNumber = new TestRng(1);

            montyHall.SetUpThreeDoors(doorNumber);
            Assert.Equal(false, montyHall.Doors[0].Prize == Prize.Car);
            Assert.Equal(true, montyHall.Doors[1].Prize == Prize.Car);
            Assert.Equal(false, montyHall.Doors[2].Prize == Prize.Car);
        }
Пример #8
0
        public void SimulatorShouldDetermineIfPlayerSwitches(bool expected, int switchingChance)
        {
            var prize     = new TestRng(2);
            var choice    = new TestRng(0);
            var simulator = new Simulator();

            simulator.PlayAllGames(prize, choice, switchingChance);
            var montyHall = new MontyHall();
            var player    = new Player(choice, switchingChance);

            montyHall.PlayGame(prize, player);
            Assert.Equal(expected, montyHall.Doors[0].IsChosen);
        }
Пример #9
0
        public void PlayerShouldBeAbleToChooseARandomDoor()
        {
            var montyHall  = new MontyHall();
            var doorNumber = new TestRng(1);

            montyHall.SetUpThreeDoors(doorNumber);
            var choice = new TestRng(2);
            var player = new Player(choice, 0);

            player.ChooseRandomDoor(choice, montyHall.Doors);
            Assert.Equal(false, montyHall.Doors[0].IsChosen);
            Assert.Equal(false, montyHall.Doors[1].IsChosen);
            Assert.Equal(true, montyHall.Doors[2].IsChosen);
        }
Пример #10
0
        public void HostShouldOpenAnUnSelectedDoorThatIsGoat()
        {
            var montyHall  = new MontyHall();
            var host       = new Host();
            var doorNumber = new TestRng(1);

            montyHall.SetUpThreeDoors(doorNumber);
            var choice = new TestRng(2);
            var player = new Player(choice, 0);

            player.ChooseRandomDoor(choice, montyHall.Doors);
            host.OpenUnselectedDoorThatIsGoat(montyHall.Doors);
            Assert.Equal(true, montyHall.Doors[0].IsOpened);
            Assert.Equal(false, montyHall.Doors[1].IsOpened);
            Assert.Equal(false, montyHall.Doors[2].IsOpened);
        }
Пример #11
0
 private void PlayGameAndGetScore(IRng doorToPlaceCar, IRng doorToChoose, double switchingChance)
 {
     for (var _ = 0; _ < NumberOfGames; _++)
     {
         var montyHall = new MontyHall();
         var player    = new Player(doorToChoose, switchingChance);
         var prize     = montyHall.PlayGame(doorToPlaceCar, player);
         if (prize == Prize.Car)
         {
             Wins++;
         }
         else
         {
             Losses++;
         }
     }
 }
Пример #12
0
        public void PlayerShouldBeAbleToASwitchDoors()
        {
            var montyHall  = new MontyHall();
            var host       = new Host();
            var doorNumber = new TestRng(1);

            montyHall.SetUpThreeDoors(doorNumber);
            var choice = new TestRng(2);
            var player = new Player(choice, 1);

            player.ChooseRandomDoor(choice, montyHall.Doors);
            host.OpenUnselectedDoorThatIsGoat(montyHall.Doors);
            player.SwitchDoor(montyHall.Doors);
            Assert.Equal(false, montyHall.Doors[0].IsChosen);
            Assert.Equal(true, montyHall.Doors[1].IsChosen);
            Assert.Equal(false, montyHall.Doors[2].IsChosen);
        }