def test_sum(self): num = 10 p = pf.generateRandomParticles(num) measurement = p[np.random.randint(0, len(p)-1)].senseNoiseUltrasonic() weight = pf.weight(p, measurement) cumsum = np.array(weight).cumsum()[num-1] self.assertWithinx(cumsum, 1.0, 0.000000001)
def test_zeroPos(self): num = 10 robot = pf.Robot() robot.setPose(0.0001,0.001,1,1,1,1) p = [robot for i in range(num)] measurement = robot.senseUltrasonic() weight = pf.weight(p, measurement) self.assertEqual([float('%.8f' % i) for i in weight], [(1.0/num) for i in range(num)])
def test_weighting(self): num = 5 r = pf.Robot() p = pf.generateRandomParticles(num) + [r] for i in p: print(i) measurement = r.senseNoiseUltrasonic() weight = pf.weight(p, measurement) print(weight) self.assertAismaxinList(weight[5], weight)