public void testIncrementInSingleBucket() { MockedClock time = new MockedClock(); RollingNumber counter = new RollingNumber(time, 200, 10); // increment counter.Increment(RollingNumberEvent.SUCCESS); counter.Increment(RollingNumberEvent.SUCCESS); counter.Increment(RollingNumberEvent.SUCCESS); counter.Increment(RollingNumberEvent.SUCCESS); counter.Increment(RollingNumberEvent.FAILURE); counter.Increment(RollingNumberEvent.FAILURE); counter.Increment(RollingNumberEvent.TIMEOUT); // we should have 1 bucket var buckets = counter.GetBuckets().ToArray(); Assert.Equal(1, buckets.Length); // the count should be 4 Assert.Equal(4, counter.GetCurrentBucket().GetAdder(RollingNumberEvent.SUCCESS)); Assert.Equal(2, counter.GetCurrentBucket().GetAdder(RollingNumberEvent.FAILURE)); Assert.Equal(1, counter.GetCurrentBucket().GetAdder(RollingNumberEvent.TIMEOUT)); }
public void testRolling() { MockedClock time = new MockedClock(); RollingNumberEvent type = RollingNumberEvent.THREAD_MAX_ACTIVE; RollingNumber counter = new RollingNumber(time, 20, 2); // iterate over 20 buckets on a queue sized for 2 for (int i = 0; i < 20; i++) { // first bucket counter.GetCurrentBucket(); try { time.Increment(counter.BucketSizeInMs); } catch (Exception) { // ignore } counter.GetValueOfLatestBucket(type); Assert.Equal(2, counter.GetValues(type).Count()); // System.out.println("Head: " + counter.buckets.state.get().head); // System.out.println("Tail: " + counter.buckets.state.get().tail); } }