def testRandom2Choice(self): n = 1000 V = numpy.array([[0.3, 0.7], [0.5, 0.5]]) J = Util.random2Choice(V, n) self.assertAlmostEquals(numpy.sum(J[0, :]==0)/float(n), V[0, 0], places=1) self.assertAlmostEquals(numpy.sum(J[0, :]==1)/float(n), V[0, 1], places=1) self.assertAlmostEquals(numpy.sum(J[1, :]==0)/float(n), V[1, 0], places=1) self.assertAlmostEquals(numpy.sum(J[1, :]==1)/float(n), V[1, 1], places=1) #Now use a vector of probabilities v = numpy.array([0.3, 0.7]) j = Util.random2Choice(v, n) self.assertAlmostEquals(numpy.sum(j==0)/float(n), v[0], places=1) self.assertAlmostEquals(numpy.sum(j==1)/float(n), v[1], places=1)
def testRandom2Choice(self): n = 1000 V = numpy.array([[0.3, 0.7], [0.5, 0.5]]) J = Util.random2Choice(V, n) self.assertAlmostEquals(numpy.sum(J[0, :] == 0) / float(n), V[0, 0], places=1) self.assertAlmostEquals(numpy.sum(J[0, :] == 1) / float(n), V[0, 1], places=1) self.assertAlmostEquals(numpy.sum(J[1, :] == 0) / float(n), V[1, 0], places=1) self.assertAlmostEquals(numpy.sum(J[1, :] == 1) / float(n), V[1, 1], places=1) #Now use a vector of probabilities v = numpy.array([0.3, 0.7]) j = Util.random2Choice(v, n) self.assertAlmostEquals(numpy.sum(j == 0) / float(n), v[0], places=1) self.assertAlmostEquals(numpy.sum(j == 1) / float(n), v[1], places=1)