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

testFilteringWithParticleSetsWorksForRainmanHmm() private method

private testFilteringWithParticleSetsWorksForRainmanHmm ( ) : void
return void
        public void testFilteringWithParticleSetsWorksForRainmanHmm()
        {
            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 = rainman.prior().toParticleSet(rainman, r, 100);
            Assert.AreEqual(56, starting
                    .numberOfParticlesWithState(HmmConstants.RAINING));
            Assert.AreEqual(44, starting
                    .numberOfParticlesWithState(HmmConstants.NOT_RAINING));

            ParticleSet afterSeeingUmbrella = starting.filter(
                    HmmConstants.SEE_UMBRELLA, r);
            Assert.AreEqual(84, afterSeeingUmbrella
                    .numberOfParticlesWithState(HmmConstants.RAINING));
            Assert.AreEqual(16, afterSeeingUmbrella
                    .numberOfParticlesWithState(HmmConstants.NOT_RAINING));

            // or alternatively
            ParticleSet afterNotSeeingUmbrella = starting.filter(
                    HmmConstants.SEE_NO_UMBRELLA, r);
            Assert.AreEqual(12, afterNotSeeingUmbrella
                    .numberOfParticlesWithState(HmmConstants.RAINING));
            Assert.AreEqual(88, afterNotSeeingUmbrella
                    .numberOfParticlesWithState(HmmConstants.NOT_RAINING));
        }