public void Algorithm_BlueCompare_AcrossExpiration() { var algo = new BlueCompareAlgorithm(); IAward award = new BlueCompareAward(50, TimeSpan.FromDays(0)); Assert.IsFalse(award.IsExpired); award = algo.Run(award); Assert.IsTrue(award.Quality > 0); award.IncrementDay(); award = algo.Run(award); Assert.IsTrue(award.IsExpired); Assert.AreEqual(0, award.Quality); }
public void Algorithm_BlueCompare() { var algo = new BlueCompareAlgorithm(); IAward award = new BlueCompareAward(0, TimeSpan.FromDays(15)); var runner = new AwardAlgorithmRunner(algo); runner.Add(award); runner.RunAlgorithmWithDayIncrement(16); var expected = new[] { 0, 1, 2, 3, 4, 6, 8, 10, 12, 14, 17, 20, 23, 26, 29, 32, 0 }; CollectionAssert.AreEqual(expected, runner.AwardInfos[0].history); }
public void Algorithm_BlueCompare_Expired() { var algo = new BlueCompareAlgorithm(); IAward award = new BlueCompareAward(50, TimeSpan.FromDays(0)); award.IncrementDay(); Assert.IsTrue(award.IsExpired); Assert.AreEqual(50, award.Quality); algo.Run(award); Assert.AreEqual(0, award.Quality); for (var i = 0; i < 25; i++) { award = algo.Run(award); Assert.AreEqual(0, award.Quality, $"Quality is non-zero on iteration '{i}'"); } }