コード例 #1
0
        public void OnlyOneDoorIsTheWinner()
        {
            Monty game = new Monty(1000);

            Assert.True(game.Doors.Where(d => d.ContainsPrize == true).Count() == 1);
            Assert.True(game.Doors.Where(d => d.ContainsPrize == false).Count() == 999);
        }
コード例 #2
0
        public void isWinReturnsFalseWhenContestantLose()
        {
            Monty game = new Monty(2);

            game.PickDoor(Array.IndexOf(game.Doors, game.Doors.Single(d => d.ContainsPrize == false)));
            Assert.False(game.IsWin());
        }
コード例 #3
0
        public void isWinReturnsTrueWhenContestantWins()
        {
            Monty game = new Monty(2);

            game.PickDoor(Array.IndexOf(game.Doors, game.Doors.Single(d => d.ContainsPrize == true)));
            Assert.True(game.IsWin());
        }
コード例 #4
0
        public void ContestantCanPickDoor()
        {
            Monty game       = new Monty(3);
            int   doorToPick = 0;

            game.PickDoor(doorToPick);
            Assert.True(game.Doors[doorToPick].Picked == true);
        }
コード例 #5
0
        public void HostRevealsDoorWhenMultipleToReveal()
        {
            Monty game       = new Monty(10, mockRandom);
            int   doorToPick = 0;

            game.PickDoor(doorToPick);

            game.RevealDoors();

            Assert.True(game.Doors.Where(d => d.Revealed).Count() == 8);
        }
コード例 #6
0
        public void HostRevealsDoorWhenDudPicked()
        {
            Monty game       = new Monty(3, mockRandom);
            int   doorToPick = 1;

            game.PickDoor(doorToPick);

            game.RevealDoors();

            Assert.True(game.Doors.Where(d => d.Revealed == true).Count() == 1);
        }
コード例 #7
0
        public void FinalPreparation()
        {
            int  doorNumber = 3;
            Room room       = new Room(doorNumber);

            Monty.SetPrize(room);
            Player.ChooseDoor(room);
            Monty.MontyOpenDoors(room);
            List <Door> closedDoors = room.Doors.FindAll(d => d.IsOpened == false);

            Assert.IsTrue(closedDoors.Count == 2);
        }
コード例 #8
0
        public void PlaceAPrizeTest()
        {
            int  doorNumber = 3;
            int  prizeCount = 0;
            Room room       = new Room(doorNumber);

            Monty.SetPrize(room);
            foreach (var door in room.Doors)
            {
                if (door.HasPrize)
                {
                    prizeCount++;
                }
            }
            Assert.IsTrue(prizeCount == 1);
        }
コード例 #9
0
        private static int RunExperiment(List <Room> rooms)
        {
            int numbersOfWin = 0;

            foreach (Room room in rooms)
            {
                Monty.SetPrize(room);
                Player.ChooseDoor(room);
                Monty.MontyOpenDoors(room);
                if (Player.ChangeDecision(room))
                {
                    numbersOfWin++;
                }
            }

            return(numbersOfWin);
        }
コード例 #10
0
        public void OpenDoorsTest()
        {
            int  doorNumber        = 3;
            int  closedDoorsNumber = 0;
            Room room = new Room(doorNumber);

            Monty.SetPrize(room);
            Monty.MontyOpenDoors(room);
            foreach (var door in room.Doors)
            {
                if (!door.IsOpened)
                {
                    closedDoorsNumber++;
                }
            }
            Assert.IsTrue(closedDoorsNumber == 2);
        }
コード例 #11
0
        public void ContestantCanSwitchDoorWhenDudPicked()
        {
            Monty game            = new Monty(3, mockRandom);
            Door  firstDoorToPick = game.Doors[1];

            game.PickDoor(1);

            Assert.True(game.Doors[1].Picked == true);

            game.RevealDoors();

            Door secondDoorToPick = game.Doors.Single(d => d.Picked == false && d.Revealed == false);

            game.SwitchDoor();

            Assert.True(game.Doors.Where(d => d.Picked).Count() == 1);
            Assert.False(firstDoorToPick == secondDoorToPick);
        }
コード例 #12
0
        public void FullTest()
        {
            int         doorNumber = 3;
            double      prizes     = 0;
            List <Room> rooms      = new List <Room>();

            for (int i = 0; i < 10000; i++)
            {
                rooms.Add(new Room(doorNumber));
            }
            foreach (var room in rooms)
            {
                Monty.SetPrize(room);
                Player.ChooseDoor(room);
                Monty.MontyOpenDoors(room);
                if (Player.ChangeDecision(room))
                {
                    prizes++;
                }
            }

            Assert.IsTrue(prizes / 100 >= 65 && prizes / 100 <= 68);
        }
コード例 #13
0
ファイル: VLong.Monty.cs プロジェクト: fartwhif/actestclient
        public static VLong ModExp(VLong x, VLong e, VLong m)
        {
            Monty me = new Monty(m);

            return(me.Exp(x, e));
        }
コード例 #14
0
        public void MockDoorThatContainsCarIs0()
        {
            Monty game = new Monty(3, mockRandom);

            Assert.True(game.Doors[0].ContainsPrize == true);
        }