public void GivenGameBoard_ContainsValidPercentOfMines(int dimX, int dimY, int percent) { IRandomInteger randomGenerator = A.Fake <IRandomInteger>(); A.CallTo(() => randomGenerator.NextInt(20, 60)).Returns(percent); IGameBoardCreator creator = new GameBoardCreator(randomGenerator); var board = creator.GenerateGameBoard(dimX, dimY); int mineCount = 0; int expectedCount = (int)((dimX * dimY) * (percent / 100.0)); for (int i = 0; i < dimX; i++) { for (int j = 0; j < dimY; j++) { if (board[i, j].HasFlag(Field.Mine)) { mineCount++; } } } Assert.That(mineCount == expectedCount, $"{mineCount} neq {expectedCount}"); }
public IntegerNegativeValueOutputTest(IRandomInteger randomInteger, ILogger logger) : base(logger) { this.randomInteger = randomInteger; }
public IntegerInRangeOutputTest(IRandomInteger randomInteger, ILogger logger) : base(logger) { Validator.ValidateNull(randomInteger); this.randomInteger = randomInteger; }
public GameBoardCreator(IRandomInteger next) { numberGenerator = next; }