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])
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]))
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)
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()
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]}))
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)
def __init__(self): self.bins = tuple(Bin() for _ in range(38)) self.rng = random.Random() self.allOutcomes = dict()
def testNext(self): w = Wheel() next = w.next() self.assertEqual(type(next), type(Bin()))
def testAddOutcome(self): w = Wheel() o = Outcome('red', 1) w.addOutcome(5, o) self.assertEqual(Bin({o}), w.getBinByIndex(5))
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))
def testInit(self): w = Wheel() binBuilder = BinBuilder(w) self.assertEqual(type(binBuilder), type(BinBuilder(w))) self.assertEqual(type(binBuilder.wheel.getBinByIndex(0)), type(Bin()))
def test_SetEquality(self): self.assertSetEqual(self.zero, Bin([Outcome("0", 35), self.five])) self.assertSetEqual(self.zerozero, Bin([Outcome("00", 35), self.five]))
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])