//[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); }
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]); } }
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]); } } }
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()); }