AIMA.Test.Core.Unit.Probability.Reasoning.ParticleFilterTest.testFilteringWithParticleSetsForRobotHmm C# (CSharp) Method

testFilteringWithParticleSetsForRobotHmm() private method

private testFilteringWithParticleSetsForRobotHmm ( ) : void
return void
        public void testFilteringWithParticleSetsForRobotHmm()
        {
            Randomizer r = new MockRandomizer(new double[] { 0.1, 0.2, 0.3, 0.4,
				0.5, 0.6, 0.7, 0.8, 0.9 });
            ParticleSet starting = robot.prior().toParticleSet(robot, r, 100);
            Assert.AreEqual(56, starting
                    .numberOfParticlesWithState(HmmConstants.DOOR_OPEN));
            Assert.AreEqual(44, starting
                    .numberOfParticlesWithState(HmmConstants.DOOR_CLOSED));

            // step one = robot takes no action but senses open door
            ParticleSet afterStepOne = starting.filter(HmmConstants.SEE_DOOR_OPEN,
                    r);
            Assert.AreEqual(66, afterStepOne
                    .numberOfParticlesWithState(HmmConstants.DOOR_OPEN));
            Assert.AreEqual(34, afterStepOne
                    .numberOfParticlesWithState(HmmConstants.DOOR_CLOSED));

            // step two = robot pushes the door and then senses open door
            ParticleSet afterStepTwo = starting.filter(HmmConstants.PUSH_DOOR,
                    HmmConstants.SEE_DOOR_OPEN, r);
            Assert.AreEqual(100, afterStepTwo
                    .numberOfParticlesWithState(HmmConstants.DOOR_OPEN));
            Assert.AreEqual(0, afterStepTwo
                    .numberOfParticlesWithState(HmmConstants.DOOR_CLOSED));
        }