public void TestUserLosesIfNotDouble() { var wager = new Wager() { Stake = 1.0f }; var diceRoll = new DiceRollMachine(); var testRoller = new TestDiceRollProvider(); diceRoll.DiceRoller = testRoller; testRoller.PreDeterminedRolls = new[] { 6, 1 }; var result = diceRoll.Play(wager); Assert.IsFalse(result.IsSuccess); }
public void TestPaysOutNinePoundOnDoubleSix() { var wager = new Wager() { Stake = 1.0f }; var diceRoll = new DiceRollMachine(); var testRoller = new TestDiceRollProvider(); diceRoll.DiceRoller = testRoller; testRoller.PreDeterminedRolls = new[] { 6, 6 }; var result = diceRoll.Play(wager); Assert.AreEqual(9.0f, result.Returns, 0.01f); }
static bool SimulateOutcome(int iterationCount) { var diceRoll = new DiceRollMachine(); diceRoll.DiceRoller.DiceFaces = 4; var roulette = new RouletteMachine(); var rouletteResults = roulette.Simulate(iterationCount); var diceRollResults = diceRoll.Simulate(iterationCount); var rouletteTitle = "Roulette"; var diceRollTitle = "Dice Roll"; var roulettePercentage = OutputSimResults(rouletteTitle, iterationCount, rouletteResults); var diceRollPercentage = OutputSimResults(diceRollTitle, iterationCount, diceRollResults); var bestMachine = "Neither"; if (roulettePercentage > diceRollPercentage) { if (IsWithinProfitLimit(rouletteTitle, roulettePercentage)) { bestMachine = rouletteTitle; } else { bestMachine = diceRollTitle; } } else if (diceRollPercentage > roulettePercentage) { if (IsWithinProfitLimit(diceRollTitle, diceRollPercentage)) { bestMachine = diceRollTitle; } else { bestMachine = rouletteTitle; } } Console.WriteLine($"{bestMachine} would provide the best profit margin.\n"); Console.WriteLine("Would you like to rerun the simulation? (y/n)"); return(Console.ReadLine().ToLower() == "y"); }