예제 #1
0
    def testMartingaleWin(self):
        bet = Bet(1.0, Outcome("BLACK", 1))
        initialStake = self.martingale.stake - bet.amount

        self.martingale.placeBets()
        self.martingale.win(bet)

        winAmount = bet.winAmount() + initialStake
        self.assertEqual(0, self.martingale.lossCount)
        self.assertEqual(1, self.martingale.betMultiple)
        self.assertEqual(winAmount, self.martingale.stake)
예제 #2
0
class BetTestCase(unittest.TestCase):
    def setUp(self):
        self.outcome_5 = Outcome("00-0-1-2-3", RoulettePayout.FiveBet)
        self.outcome_0 = Outcome("Number 0", RoulettePayout.StraightBet)
        self.bet_5 = Bet(1000, self.outcome_5)
        self.bet_0 = Bet(1000, self.outcome_0)

    def test_winAmount(self):
        self.assertEqual(self.bet_5.winAmount(), 1000 + 1000 * 6)
        self.assertEqual(self.bet_0.winAmount(), 1000 + 1000 * 35)

    def test_getAmount(self):
        self.assertEqual(self.bet_5, "1000 on 00-0-1-2-3 (6:1)")
예제 #3
0
    def testBetsIterator(self):
        betFour = Bet(3, Outcome("test4", 2))
        betFive = Bet(2, Outcome("test5", 3))
        self.table.placeBet(self.betOne)
        self.table.placeBet(self.betTwo)
        self.table.placeBet(betFour)
        self.table.placeBet(betFive)

        betStrings = []
        for bet in self.table.bets:
            betStrings.append(str(bet))

        self.assertTrue("1 on test1" in betStrings, MISSING_BET_STRINGS_VALUE)
        self.assertTrue("2 on test2" in betStrings, MISSING_BET_STRINGS_VALUE)
        self.assertTrue("3 on test4" in betStrings, MISSING_BET_STRINGS_VALUE)
        self.assertTrue("2 on test5" in betStrings, MISSING_BET_STRINGS_VALUE)
예제 #4
0
    def placeBets(self):
        """Updates the Table with the various bets."""

        # create bet
        bet = Bet(self.BASE_AMOUNT, self.getOutcome(self.BASE_BET))

        # update table with bet
        super(Passenger57, self).placeBets(bet)
예제 #5
0
    def testMartingaleLoss(self):
        bet = Bet(1.0, Outcome("BLACK", 1))

        self.martingale.placeBets()
        self.martingale.lose(bet)

        self.assertEqual(1, self.martingale.lossCount)
        self.assertEqual(2, self.martingale.betMultiple)
예제 #6
0
 def placeBets(self):
     "Ideally the black should not be hardcoded but taken from some variable"
     super().placeBets()
     betAmount = self.initialBet * self.betMultiple
     self.stake -= betAmount
     blackOutcome = self.table.wheel.getOutcome("Black")
     blackBet = Bet(betAmount, blackOutcome)
     self.table.placeBet(blackBet)
예제 #7
0
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
예제 #8
0
    def setUp(self):

        # create player
        self.table = Table()
        self.player = SevenReds(self.table)
        self.player.setStake(1000)

        # create bets to test them
        self.bet1 = Bet(1, self._getOutcome("Black"))
        self.bet2 = Bet(2, self._getOutcome("Black"))
        self.bet3 = Bet(4, self._getOutcome("Black"))

        # create NonRandom instance with seed
        non_random = NonRandom()
        non_random.setSeed(1)

        # create game
        self.wheel = Wheel(non_random)
        self.game = Game(self.wheel, self.table)
예제 #9
0
class TestBet(TestCase):
    def setUp(self):
        self.betOne = Bet(1, Outcome("test1", 1))
        self.betTwo = Bet(1, Outcome("test2", 3))
        self.betThree = Bet(1, Outcome("test3", 4))
        self.betFour = Bet(5, Outcome("test4", 4))

    def testWinAmount(self):
        self.assertEqual(2, self.betOne.winAmount())
        self.assertEqual(4, self.betTwo.winAmount())
        self.assertEqual(5, self.betThree.winAmount())
        self.assertEqual(25, self.betFour.winAmount())

    def testLoseAmount(self):
        self.assertEqual(1, self.betOne.loseAmount())
        self.assertEqual(1, self.betTwo.loseAmount())
        self.assertEqual(1, self.betThree.loseAmount())
        self.assertEqual(5, self.betFour.loseAmount())

    def testToString(self):
        self.assertEqual("5 on test4", self.betFour.__str__(),
                         "String representation not as expected")
예제 #10
0
    def placeBets(self):
        """Create bet and update table with it."""

        # create bet
        bet = Bet(self.BASE_AMOUNT * self.bet_multiple,
                  self.getOutcome(self.BASE_BET))

        # update table with bet
        success = super(Martingale, self).placeBets(bet)

        # if bet coudn't be placed because no more money, leave and reset
        if not success:
            self.setRoundsToGo(0)
            self.loss_count = 0
            self.bet_multiple = 1

        return success
예제 #11
0
 def testCheckCanBet(self):
     bet = Bet(4.0, Outcome("BLACK", 1))
     self.assertTrue(self.martingale.checkCanBetPlay(bet))
예제 #12
0
 def testCheckCantBetMoreThanTableLimit(self):
     bet = Bet(20.0, Outcome("BLACK", 1))
     self.assertFalse(self.martingale.checkCanBetPlay(bet))
예제 #13
0
 def testCheckCantBetPlayMoreThanStake(self):
     bet = Bet(1.0, Outcome("BLACK", 1))
     self.martingale.setStake(0)
     self.assertFalse(self.martingale.checkCanBetPlay(bet))
예제 #14
0
 def setUp(self):
     self.table = Table()
     self.betOne = Bet(1, Outcome("test1", 4))
     self.betTwo = Bet(2, Outcome("test2", 3))
     self.betThree = Bet(12, Outcome("test3", 4))
예제 #15
0
    def testMartingaleCanPlaceBetsOnTable(self):
        bet = Bet(1.0, Outcome("BLACK", 1))
        self.martingale.placeBets()

        self.assertIn(bet, self.table.bets)
예제 #16
0
 def placeBets(self):
     super().placeBets()
     betToPlace = Bet(self.BET_AMOUNT, self.black)
     self.table.placeBet(betToPlace)
예제 #17
0
 def setUp(self):
     self.betOne = Bet(1, Outcome("test1", 1))
     self.betTwo = Bet(1, Outcome("test2", 3))
     self.betThree = Bet(1, Outcome("test3", 4))
     self.betFour = Bet(5, Outcome("test4", 4))
예제 #18
0
 def placeBets(self):
     bet = Bet(2, self.black)
     self.table.placeBet(bet)
     self.stake -= bet.amount
예제 #19
0
 def setUp(self):
     self.outcome_5 = Outcome("00-0-1-2-3", RoulettePayout.FiveBet)
     self.outcome_0 = Outcome("Number 0", RoulettePayout.StraightBet)
     self.bet_5 = Bet(1000, self.outcome_5)
     self.bet_0 = Bet(1000, self.outcome_0)