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])
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')