Esempio n. 1
0
        private static bool AllValuesAreEqual(
            IProblem <GamblersWorldState, GamblersWorldAction> problem,
            ValueTable <GamblersWorldState, GamblersWorldAction> genericValues,
            GamblersValueTable gamblersValues)
        {
            foreach (var state in problem.AllStates())
            {
                var genericValue = genericValues.Value(state);
                var gamblerValue = gamblersValues.Value(state);

                Assert.AreEqual(genericValue, gamblerValue, 0.01,
                                $"values not equal for state {state}. " +
                                $"generic: {genericValue}, gambler: {gamblerValue}");
            }

            return(true);
        }
Esempio n. 2
0
        public void Evaluates_to_same_values_as_gamblers_value_table()
        {
            const double probabilityOfHeads = 0.4;
            const int    dollarsToWin       = 100;

            var gamblersWorld = new GamblersWorld(probabilityOfHeads, dollarsToWin);
            var rewarder      = new GamblersWorldRewarder(gamblersWorld);
            var policy        = new UniformRandomGamblersPolicy();

            var gamblersValues = new GamblersValueTable(gamblersWorld);
            var genericValues  = new ValueTable <GamblersWorldState, GamblersWorldAction>(gamblersWorld);

            gamblersValues.Evaluate(policy, rewarder);
            genericValues.Evaluate(policy, rewarder);

            Assert.That(() => AllValuesAreEqual(gamblersWorld, genericValues, gamblersValues));
        }