1 8 package com.tirsen.nanning.samples; 9 10 import com.tirsen.nanning.config.AspectSystem; 11 import com.tirsen.nanning.config.FindTargetMixinAspect; 12 import com.tirsen.nanning.attribute.AbstractAttributesTest; 13 import com.tirsen.nanning.Aspects; 14 15 public class CacheTest extends AbstractAttributesTest { 16 17 public void testCacheCounter() { 18 AspectSystem aspectSystem = new AspectSystem(); 19 aspectSystem.addAspect(new FindTargetMixinAspect()); 20 CacheAspect counter = new CacheAspect(new CacheInterceptor()); 21 aspectSystem.addAspect(counter); 22 23 assertEquals(1, counter.getCacheHitRatio(), 0.01); 24 CacheTestCalculations cacheTestCalculations = 25 (CacheTestCalculations) aspectSystem.newInstance(CacheTestCalculations.class); 26 assertEquals(42.4711, cacheTestCalculations.someHeavyCalculation(1), 0.01); 27 assertEquals(1, counter.totalCount); 28 assertEquals(1, counter.missCount); 29 assertEquals(0, counter.getCacheHitRatio(), 0.01); 30 31 assertEquals(42.4711, cacheTestCalculations.someHeavyCalculation(1), 0.01); 32 assertEquals(2, counter.totalCount); 33 assertEquals(1, counter.missCount); 34 assertEquals(1, counter.totalCount - counter.missCount); 35 assertEquals(0.5, (counter.totalCount - counter.missCount) / (double) counter.totalCount, 0.01); 36 assertEquals(0.5, counter.getCacheHitRatio(), 0.01); 37 38 assertEquals(42.4711, cacheTestCalculations.someHeavyCalculation(1), 0.01); 39 assertEquals(0.66, counter.getCacheHitRatio(), 0.01); 40 41 assertEquals(84.9422, cacheTestCalculations.someHeavyCalculation(2), 0.01); 42 assertEquals(0.5, counter.getCacheHitRatio(), 0.01); 43 44 assertEquals(127.4132, cacheTestCalculations.someHeavyCalculation(3), 0.01); 45 assertEquals(0.4, counter.getCacheHitRatio(), 0.01); 46 47 assertEquals(3, counter.missCount); 48 cacheTestCalculations.someHeavyCalculation(1); 49 assertEquals(3, counter.missCount); 50 ((CacheInterceptor) 51 Aspects.findFirstInterceptorWithClass(cacheTestCalculations, CacheInterceptor.class)).clearCache(); 52 cacheTestCalculations.someHeavyCalculation(1); 53 assertEquals(4, counter.missCount); 54 } 55 56 } 57 | Popular Tags |