public void TestRedWins() { var roulette = new RouletteMachine(); DefaultTestRoller.PreDeterminedSpin = 0; roulette.Roller = DefaultTestRoller; var wager = new RouletteWager { Stake = 1.0f, Choice = RouletteOption.Red }; var result = roulette.Play(wager); Assert.IsTrue(result.IsSuccess); Assert.AreEqual(2.0f, result.Returns, 0.01f); }
public void TestWhiteWins() { var roulette = new RouletteMachine(); var wheel = DefaultTestRoller; wheel.PreDeterminedSpin = wheel.RedSlots + wheel.BlackSlots + 1; roulette.Roller = wheel; var wager = new RouletteWager { Stake = 1.0f, Choice = RouletteOption.Black }; var result = roulette.Play(wager); Assert.IsTrue(result.IsSuccess); Assert.AreEqual(0.1f, 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"); }