public void BadState_Throws() { var returns = new StateReturns(5); Assert.Throws <IndexOutOfRangeException>(() => returns.Add(-1, 1)); Assert.Throws <IndexOutOfRangeException>(() => returns.Add(5, 1)); }
public void Averages_AreCorrect() { var returns = new StateReturns(5); returns.Add(4, 2); returns.Add(4, 4); Assert.AreEqual(3, returns.AverageReturnFrom(4)); }
public double[] Estimate(RandomWalkEnvironment environment, int?episodeLimit = null) { _values = Enumerable.Range(0, environment.NumPositions).Select(_ => 0.5).ToArray(); _returns = new StateReturns(environment.NumPositions); var maxEpisodes = episodeLimit ?? 10000; for (var i = 0; i < maxEpisodes; i++) { ImproveEstimates(environment); } return(_values); }