public void OddSplitWinnings() { Tournament tournament = new Tournament() { BuyIn = 333, PrizePool = 999, PayoutScheme = PayoutScheme.FIFTY_FIFY, Entries = new List <TournamentEntry>() { new TournamentEntry() { Chips = 5000, UserId = "roger" }, new TournamentEntry() { Chips = 5000, UserId = "jennifer" }, new TournamentEntry() { Chips = 1000, UserId = "billy" }, } }; PayoutEngine calculator = new PayoutEngine(); IReadOnlyList <TournamentPayout> payouts = calculator.Calculate(tournament); Assert.AreEqual(2, payouts.Count); Assert.AreEqual(999, payouts.Sum(p => p.Payout)); Assert.That(payouts[0].Payout == 500 || payouts[0].Payout == 499); Assert.That(payouts[1].Payout == 500 || payouts[1].Payout == 499); }
public void TwoEntries() { Tournament tournament = new Tournament() { BuyIn = 250, PrizePool = 500, PayoutScheme = PayoutScheme.FIFTY_FIFY, Entries = new List <TournamentEntry>() { new TournamentEntry() { Chips = 10000, UserId = "roger" }, new TournamentEntry() { Chips = 1000, UserId = "jennifer" } } }; PayoutEngine calculator = new PayoutEngine(); IReadOnlyList <TournamentPayout> payouts = calculator.Calculate(tournament); Assert.AreEqual(1, payouts.Count); Assert.AreEqual(500, payouts.Sum(p => p.Payout)); }
public void SplitWinnings() { Tournament tournament = new Tournament() { BuyIn = 250, PrizePool = 750, PayoutScheme = PayoutScheme.WINNER_TAKES_ALL, Entries = new List <TournamentEntry>() { new TournamentEntry() { Chips = 5000, UserId = "roger" }, new TournamentEntry() { Chips = 5000, UserId = "jennifer" }, new TournamentEntry() { Chips = 1000, UserId = "billy" }, } }; PayoutEngine calculator = new PayoutEngine(); IReadOnlyList <TournamentPayout> payouts = calculator.Calculate(tournament); Assert.AreEqual(2, payouts.Count); Assert.AreEqual(750, payouts.Sum(p => p.Payout)); Assert.AreEqual(375, payouts[0].Payout); Assert.AreEqual(375, payouts[1].Payout); }