예제 #1
0
    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)
예제 #2
0
    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)