def testDistanceAVGAlteredKappa(self): R = numpy.linspace(5, 6, 1100) kappa = [ 2. / 3 ] * 200 + [ 1. / 3 ] * 400 + [ 2. / 3 ] * 500 weights = [ 1. ] * 1100 tm = DistanceAVGKappaTransferMatrix(20, 11, 5, self.constant5000Burstgen, 5.475, R, kappa, weights) tm.generateMatrix() self.assertEqual(tm.getMatrix().shape, (20, 11)) self.assertEqual(tm.RRange[0], 5) self.assertEqual(tm.RRange[1], 6) R0neu = modifyR0(5.475, 1. / 3) print "New R0 is %f" % R0neu eff = rToEff(5.475, R0 = R0neu) effndx = int(eff * 11) self.assertAlmostEqual(tm.getMatrix()[9][effndx], 1, delta = 0.01)
def testRandomUncorr(self): length = 100000 startdist = 4 enddist = 7 rbins = 10 ebins = 20 bursts = 10000 R0 = 5.475 bgen = self.constant50Burstgen R = numpy.random.random(length) * (enddist - startdist) + startdist kappa2 = numpy.array(list(getKappa(genRandomVec(), genRandomVec(), genRandomVec()) ** 2 for _ in range(length))) print "Kappa^2 mean is ", kappa2.mean() R0mod = modifyR0(R0, kappa2.mean()) prbs = numpy.ones(length) globaltm = GlobalAVGKappaTransferMatrix(rbins, ebins, bursts, bgen, R0mod, (startdist, enddist)) localtm = DistanceAVGKappaTransferMatrix(rbins, ebins, bursts, bgen, R0, R, kappa2, prbs, RRange = (startdist, enddist)) self.assertMatrixAlmostEqual(globaltm.getMatrix(), localtm.getMatrix(), delta = 0.10)