Tell us what’s happening:
There is an implementation of Hat.draw
that involves picking balls one by one by getting a random index, copying it, and popping it from Hat.contents
, and I assume that is the intended one, because it passes all the tests without issue.
However, I initially tried a slightly simpler method, as follows:
def draw(self, number):
random.shuffle(self.contents)
n = min(number, len(self.contents))
result = self.contents[:n]
self.contents = self.contents[n:]
return result
This one will fail test_hat_draw
in the test module, giving the following error:
AssertionError: Lists differ: ['red', 'red'] != ['blue', 'red']
First differing element 0:
'red'
'blue'
- ['red', 'red']
? ^ -
+ ['blue', 'red']
? ^^^
: Expected hat draw to return two random items from hat contents.
Although I did not change the random seed, my different implementation causes the result to be different from the expected “random” result that would be given by a different implementation.
Is there something necessarily wrong with the implementation I provided, or is the test module just not robust enough to handle the difference?
Your code so far
My code on replit is available here: fcc-probability-calculator - Replit
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
Challenge: Scientific Computing with Python Projects - Probability Calculator
Link to the challenge: