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_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}'");
            }
        }