Пример #1
0
    def setUp(self):

        self.wheel = Wheel()

        self.outcome0 = Outcome("Number 0", 36)
        self.outcome00 = Outcome("Number 00", 36)

        self.bin0 = Bin([self.outcome0])
        self.bin00 = Bin([self.outcome00])
Пример #2
0
 def addOutcome(self, number, outcome):
     
     # Adds outcomes to bins
     
     if number == "00":
         self.bins[37] = self.bins[37].union(Bin([outcome]))
         
         #self.allOutcomes["Number 00"] = outcome
     else:
         number = int(number)
         self.bins[number] = self.bins[number].union(Bin([outcome]))
Пример #3
0
 def setUp(self) -> None:
     self.t = Table([])
     self.w = Wheel()
     binBuilder = BinBuilder(self.w)
     binBuilder.buildBins()
     self.blackOutcome = self.w.getOutcomeByName('black')
     self.redOutcome = self.w.getOutcomeByName('red')
     self.blackOutcomeBin = Bin([self.blackOutcome])
     self.redOutcomeBin = Bin([self.redOutcome])
     self.m = Martingale(self.t, self.w)
     self.m.isPlaying = MagicMock(return_value=True)
     self.g = Game(self.t, self.w)
Пример #4
0
    def test_cycle_win_lose(self):
        p1 = Passenger57(self.t, self.w)
        p1.win = MagicMock()
        p1.lose = MagicMock()
        black = self.w.getOutcomeByName('black')
        self.w.next = MagicMock(return_value=Bin([black]))
        p1.isPlaying = MagicMock(return_value=True)

        self.g.cycle(p1)

        p1.win.assert_called()
        p1.lose().assert_not_called()
Пример #5
0
 def test_randomness(self):
     # arrange
     pseudoRandom = random.Random()
     pseudoRandom.seed(1)
     randomIndices = [pseudoRandom.randint(0, 37) for _ in range(10)]
     outcomes = [Outcome(i, 1) for i in range(10)]
     zipped = zip(randomIndices, outcomes)
     w = Wheel()
     for z in zipped:
         w.addOutcome(z[0], z[1])
     w.rng.seed(1)
     # act+assert
     for _ in zipped:
         self.assertEqual(w.next(), Bin({outcomes[i]}))
Пример #6
0
 def __init__(self):
     
     """
     This constructor creates a wheel with 38 bins,
     and calls uses the methods of the BinBuilder class
     to create Outcomes and assign them to the Bins.
     """
             
     # Creates the wheel with 38 bins
     # Right now, it is a list with 38 entries
     self.bins = list( Bin() for i in range(38) )
     
     # Collection of all outcomes
     # Used in getOutcome to return a desired outcome
     self.allOutcomes = dict()
     
     # Populates the allOutcomes dictionary
     self.populateOutcomeDict()
     
     """
     We then call the buildBins() function in the 
     BinBuilder class.
     """
     BinBuilder.buildBins(self, self)
Пример #7
0
 def __init__(self):
     self.bins = tuple(Bin() for _ in range(38))
     self.rng = random.Random()
     self.allOutcomes = dict()
Пример #8
0
 def testNext(self):
     w = Wheel()
     next = w.next()
     self.assertEqual(type(next), type(Bin()))
Пример #9
0
 def testAddOutcome(self):
     w = Wheel()
     o = Outcome('red', 1)
     w.addOutcome(5, o)
     self.assertEqual(Bin({o}), w.getBinByIndex(5))
Пример #10
0
 def testBinElements(self):
     outcomes = {Outcome('red', 2), Outcome('blue', 3)}
     b = Bin(outcomes)
     c = Bin(outcomes)
     self.assertEqual(b, frozenset(outcomes))
     self.assertEqual(c, frozenset(outcomes))
Пример #11
0
 def testInit(self):
     w = Wheel()
     binBuilder = BinBuilder(w)
     self.assertEqual(type(binBuilder), type(BinBuilder(w)))
     self.assertEqual(type(binBuilder.wheel.getBinByIndex(0)), type(Bin()))
Пример #12
0
    def test_SetEquality(self):

        self.assertSetEqual(self.zero, Bin([Outcome("0", 35), self.five]))
        self.assertSetEqual(self.zerozero, Bin([Outcome("00", 35), self.five]))
Пример #13
0
    def setUp(self):

        self.five = Outcome("00-0-1-2-3", 6)
        self.zero = Bin([Outcome("0", 35), self.five])
        self.zerozero = Bin([Outcome("00", 35), self.five])