コード例 #1
0
ファイル: HundredDoorsTest.cs プロジェクト: ayaovi/katas
    //[TestCase(100, "@##@####@######@########@##########@############@##############@################@##################@", TestName = "Hundred Doors")]
    //[TestCase(2, "@@")]
    public void Pass_GivenDoors_ExpectResult(int numberOfDoors, string expected)
    {
      //Arrange
      var doors = Enumerable.Range(1, numberOfDoors).Select(i => new Door{Status = State.Closed, Index = i}).ToArray();

      //Act
      var result = HundredDoors.Pass(doors, 1, numberOfDoors);

      //Assert
      GetStringValue(result).ShouldBeEquivalentTo(expected);
    }
コード例 #2
0
        private void TheFirstTimeYouVisitEveryDoorAndToggleTheDoor()
        {
            HundredDoors hundredDoors = new HundredDoors();

            doors = hundredDoors.Toggle(doors, 1);

            for (int i = 0; i < Constant.numberOfDoors; i++)
            {
                Assert.Equal(DoorState.IsOpened, doors[i]);
            }
        }
コード例 #3
0
        private void TheSecondTimeYouOnlyVisitEvery2ndDoor()
        {
            HundredDoors hundredDoors = new HundredDoors();

            doors = hundredDoors.Toggle(doors, 2);

            for (int i = 0; i < doors.Count(); i++)
            {
                if ((i + 1) % 2 == 0)
                {
                    Assert.Equal(DoorState.IsClosed, doors[i]);
                }
            }
        }
コード例 #4
0
        private void TheThirdTimeEvery3rdDoor()
        {
            HundredDoors hundredDoors = new HundredDoors();

            doors = hundredDoors.Toggle(doors, 3);
            var openDoors = from door in doors
                            where door == DoorState.IsOpened
                            select door;
            var closeDoors = from door in doors
                             where door == DoorState.IsClosed
                             select door;

            Assert.Equal(49, openDoors.Count());
            Assert.Equal(51, closeDoors.Count());
        }