def test_mapping(): outcome1 = Outcome("red", 1) outcome2 = Outcome("black", 2) rng = NonRandom() wheel = Wheel(rng) wheel.addOutcome(1, outcome1) wheel.addOutcome(2, outcome2) wheel.addOutcome(4, outcome2) out = wheel.getOutcome("red") assert out == outcome1 out = wheel.getOutcome("black") assert out == outcome2
def getOutcome(self, outcome_name): """Query a constructed wheel for getting outcome.""" # create Whell wheel = Wheel() return wheel.getOutcome(outcome_name)
def test_placeBets(): table_limit = 1000 table = Table(table_limit) rng = NonRandom() wheel = Wheel(rng) binbuilder = BinBuilder(wheel) binbuilder.straightBets() outcome = wheel.getOutcome("1") amount = 500 bet = Bet(amount, outcome) invalid = True try: table.placeBet(bet) invalid = False except InvalidBet: print "bet not valid" invalid = True assert table.bets[0] == bet assert len(table.bets) == 1 assert invalid is False amount = 300 bet = Bet(amount, outcome) invalid = True try: table.placeBet(bet) invalid = False except InvalidBet: print "bet not valid" invalid = True assert table.bets[1] == bet assert len(table.bets) == 2 assert invalid is False amount = 900 bet = Bet(amount, outcome) invalid = True try: table.placeBet(bet) invalid = False except InvalidBet: print "bet not valid" invalid = True assert len(table.bets) == 2 assert invalid is True
def test_win_loseAmount(): rng = NonRandom() wheel = Wheel(rng) binbuilder = BinBuilder(wheel) binbuilder.straightBets() outcome = wheel.getOutcome("1") amount = 500 bet = Bet(amount, outcome) for i in range(0, 38): wheel.rng.setSeed(i) returned_bin = wheel.next() returned_outcomes = returned_bin.outcomes if outcome in returned_outcomes: assert bet.winAmount() == 500 + 500 * outcome.odds else: assert bet.loseAmount() == 500
players = [] player_stakes = 1000 for i in xrange(int(num_of_players)): player_name = raw_input("> Name for player%d: " % (i+1)) player = Player(table, player_name, player_stakes) players.append(player) bets = [] while num_of_players > 0: for p in num_of_players: outcome_name = raw_input("> bet for %s: " % (players[i].name)) amount = int(raw_input("> amount: ")) while amount > players[i].stakes: print "not enough money left. Remaining stakes: %d" % players[i].stakes amount = raw_input("> amount: ") outcome = wheel.getOutcome(outcome_name) try: players[i].placeBets(amount, outcome) except InvalidBet: print "invalid bet" game.cycle(players[0]) print "Remaining stakes: %d" % players[i].stakes more = raw_input("> want to play more(y/n)?:") if "y" in more: pass else: num_of_players = 0 print "Thank you! have a good day!"
class WheelConstructionTestCase(unittest.TestCase): def setUp(self): # create outcomes self.outcome_5 = Outcome("00-0-1-2-3", 6) self.outcome_0 = Outcome("0", 35) self.outcome_00 = Outcome("00", 35) # create wheel and bin builder self.wheel = Wheel() self.bin_builder = BinBuilder() def test_add_outcome(self): # Bin 0 outcomes self.wheel.add_outcome(0, self.outcome_0) self.wheel.add_outcome(0, self.outcome_5) # Bin 00 outcomes self.wheel.add_outcome(37, self.outcome_00) self.wheel.add_outcome(37, self.outcome_5) # assert Bin 0 outcomes self.assertIn(self.outcome_0, self.wheel.get(0)) self.assertIn(self.outcome_5, self.wheel.get(0)) # assert Bin 00 outcomes self.assertIn(self.outcome_00, self.wheel.get(37)) self.assertIn(self.outcome_5, self.wheel.get(37)) def test_bin_building(self): # build bins for the wheel self.bin_builder.buildBins(self.wheel) sample_bin1 = [ Outcome("Street 1-2-3", RoulettePayout.StreetBet), Outcome("Number 1", RoulettePayout.StraightBet), Outcome("Line 1-2-3-4-5-6", RoulettePayout.LineBet), Outcome("Low", RoulettePayout.EvenBet), Outcome("Odd", RoulettePayout.EvenBet), Outcome("Red", RoulettePayout.EvenBet), Outcome("Corner 1-2-4-5", RoulettePayout.CornerBet), Outcome("Dozen 1", RoulettePayout.DozenBet), Outcome("Column 1", RoulettePayout.ColumnBet), Outcome("Split 1-2", RoulettePayout.SplitBet), Outcome("Split 1-4", RoulettePayout.SplitBet), Outcome("00-0-1-2-3", RoulettePayout.FiveBet) ] sample_bin2 = [ Outcome("Number 00", RoulettePayout.StraightBet), Outcome("00-0-1-2-3", RoulettePayout.FiveBet) ] # check number of outcomes to be equal self.assertEqual(len(sample_bin1), len(self.wheel.get(1))) self.assertEqual(len(sample_bin2), len(self.wheel.get(37))) # check outcomes to be in the bin 1 for outcome in sample_bin1: self.assertIn(outcome, self.wheel.get(1)) # check outcomes to be in the bin 00 for outcome in sample_bin2: self.assertIn(outcome, self.wheel.get(37)) def test_outcome_mapping(self): # add outcomes to wheel self.wheel.add_outcome(0, self.outcome_0) self.wheel.add_outcome(37, self.outcome_00) self.wheel.add_outcome(3, self.outcome_5) # check that they are mapped self.assertEqual(self.wheel.getOutcome(self.outcome_0.getName()), self.outcome_0) self.assertEqual(self.wheel.getOutcome(self.outcome_00.getName()), self.outcome_00) self.assertEqual(self.wheel.getOutcome(self.outcome_5.getName()), self.outcome_5)
def _getOutcome(self, outcome_name): # create Whell wheel = Wheel() return wheel.getOutcome(outcome_name)