public void TestMisses() { SimpleCacheStatistics stats = new SimpleCacheStatistics(); int count = 0; Assert.AreEqual(stats.CacheMisses, count); Assert.AreEqual(stats.CacheMissesMillis, 0); Assert.AreEqual(stats.AverageMissMillis, 0); Assert.AreEqual(stats.HitProbability, 0); long start = DateTimeUtils.GetSafeTimeMillis(); Thread.Sleep(10); //so that CacheMissesMillis wouldn't be 0 stats.RegisterMiss(start); count++; Assert.AreEqual(stats.CacheMisses, count); Assert.AreEqual(stats.AverageMissMillis, (double)stats.CacheMissesMillis); stats.RegisterMiss(0); count++; Assert.AreEqual(stats.CacheMisses, count); Assert.AreEqual(stats.AverageMissMillis, (double)stats.CacheMissesMillis / (double)count); int n = 5; start = DateTimeUtils.GetSafeTimeMillis(); Thread.Sleep(10); stats.RegisterMisses(n, start); count += n; Assert.AreEqual(stats.CacheMisses, count); Assert.AreEqual(stats.AverageMissMillis, (double)stats.CacheMissesMillis / (double)count); Assert.AreEqual(stats.HitProbability, 0); stats.ResetHitStatistics(); Assert.AreEqual(stats.CacheMisses, 0); Assert.AreEqual(stats.CacheMissesMillis, 0); Assert.AreEqual(stats.AverageMissMillis, 0); }
public void TestGets() { SimpleCacheStatistics stats = new SimpleCacheStatistics(); int countHits = 0; int countMisses = 0; Assert.AreEqual(stats.TotalGets, 0); Assert.AreEqual(stats.TotalGetsMillis, 0); Assert.AreEqual(stats.AverageGetMillis, 0); Assert.AreEqual(stats.HitProbability, 0); long start = DateTimeUtils.GetSafeTimeMillis(); Thread.Sleep(10); //so that TotalGetsMillis wouldn't be 0 stats.RegisterHit(start); countHits++; Assert.AreEqual(stats.TotalGets, countHits); Assert.AreEqual(stats.AverageGetMillis, (double)stats.TotalGetsMillis); Assert.AreEqual(stats.HitProbability, 1); start = DateTimeUtils.GetSafeTimeMillis(); Thread.Sleep(10); stats.RegisterMiss(start); countMisses++; Assert.AreEqual(stats.TotalGets, countHits + countMisses); Assert.AreEqual(stats.AverageGetMillis, (double)stats.TotalGetsMillis / (double)(countHits + countMisses)); Assert.AreEqual(stats.HitProbability, 0.5); int n = 5; stats.RegisterHits(n, 0); countHits += n; Assert.AreEqual(stats.TotalGets, countHits + countMisses); Assert.AreEqual(stats.AverageGetMillis, (double)stats.TotalGetsMillis / (double)(countHits + countMisses)); stats.ResetHitStatistics(); Assert.AreEqual(stats.TotalGets, 0); Assert.AreEqual(stats.TotalGetsMillis, 0); Assert.AreEqual(stats.AverageGetMillis, 0); }