Exemplo n.º 1
0
        public void TestHits()
        {
            SimpleCacheStatistics stats = new SimpleCacheStatistics();
            int count = 0;

            Assert.AreEqual(stats.CacheHits, count);
            Assert.AreEqual(stats.CacheHitsMillis, 0);
            Assert.AreEqual(stats.AverageHitMillis, 0);
            Assert.AreEqual(stats.HitProbability, 0);

            long start = DateTimeUtils.GetSafeTimeMillis();

            Thread.Sleep(10); //so that CacheHitsMillis wouldn't be 0
            stats.RegisterHit(start);
            count++;
            Assert.AreEqual(stats.CacheHits, count);
            Assert.AreEqual(stats.AverageHitMillis, (double)stats.CacheHitsMillis);

            stats.RegisterHit(0);
            count++;
            Assert.AreEqual(stats.CacheHits, count);
            Assert.AreEqual(stats.AverageHitMillis, (double)stats.CacheHitsMillis / (double)count);

            int n = 5;

            start = DateTimeUtils.GetSafeTimeMillis();
            Thread.Sleep(10);
            stats.RegisterHits(n, start);
            count += n;
            Assert.AreEqual(stats.CacheHits, count);
            Assert.AreEqual(stats.AverageHitMillis, (double)stats.CacheHitsMillis / (double)count);

            Assert.AreEqual(stats.HitProbability, 1);

            stats.ResetHitStatistics();
            Assert.AreEqual(stats.CacheHits, 0);
            Assert.AreEqual(stats.CacheHitsMillis, 0);
            Assert.AreEqual(stats.AverageHitMillis, 0);
        }
Exemplo n.º 2
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);
        }