示例#1
0
    def hhhtest_default_constructor(self):
        self.create_resampling_particle_set()
        defaultParticleSet = self.resamplingParticleSet

        self.assertEqual(defaultParticleSet.getNumParticles(),
                         self.resampleNumParticles)
        self.assertEqual(defaultParticleSet.getObservationVariance(), 0.1)

        positions = defaultParticleSet.observeParticles()
        defaultPosition = [0.0, 0.0]
        self.assertEqual(positions.shape, ((self.resampleNumParticles, 2)))
        for i in range(self.resampleNumParticles):
            self.assertEqual(positions[i, :].tolist(), defaultPosition)

        observation = defaultParticleSet.observeTrueState()
        self.assertEqual(observation.shape, ((2, )))
        self.assertEqual(observation.tolist(), defaultPosition)

        self.assertEqual(defaultParticleSet.getDomainSizeX(), 1.0)
        self.assertEqual(defaultParticleSet.getDomainSizeY(), 1.0)

        weight = 1.0 / self.resampleNumParticles
        weights = [weight] * self.resampleNumParticles
        self.assertEqual(
            dautils.getGaussianWeight(
                defaultParticleSet.getDistances(),
                defaultParticleSet.getObservationVariance()).tolist(), weights)
        self.assertEqual(
            dautils.getCauchyWeight(
                defaultParticleSet.getDistances(),
                defaultParticleSet.getObservationVariance()).tolist(), weights)

        # Check boundary condition
        self.assertEqual(defaultParticleSet.getBoundaryConditions().get(),
                         [1, 1, 1, 1])
示例#2
0
 def test_cauchy_weights(self):
     self.set_positions_resampling_set()
     obtainedWeights = dautils.getCauchyWeight(
         self.resamplingParticleSet.getDistances(),
         self.resamplingParticleSet.getObservationVariance())
     referenceWeights = [
         0.28413284, 0.16789668, 0.04797048, 0.28413284, 0.16789668,
         0.04797048
     ]
     assertListAlmostEqual(self, obtainedWeights.tolist(), referenceWeights,
                           6, 'cauchy weights')