You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2015/10/02 15:52:24 UTC
svn commit: r1706407 - in
/jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats:
TimeSeriesAverageTest.java TimeSeriesMaxTest.java
Author: mduerig
Date: Fri Oct 2 13:52:23 2015
New Revision: 1706407
URL: http://svn.apache.org/viewvc?rev=1706407&view=rev
Log:
JCR-3860: Properly expose missing values in TimeSeries implementations
Unit tests
Added:
jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesAverageTest.java
jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesMaxTest.java
Added: jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesAverageTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesAverageTest.java?rev=1706407&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesAverageTest.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesAverageTest.java Fri Oct 2 13:52:23 2015
@@ -0,0 +1,100 @@
+package org.apache.jackrabbit.stats;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+import junit.framework.TestCase;
+
+/**
+ * michid document
+ */
+public class TimeSeriesAverageTest extends TestCase {
+
+ public void testAverage() {
+ TimeSeriesRecorder values = new TimeSeriesRecorder(true);
+ TimeSeriesRecorder counts = new TimeSeriesRecorder(true);
+ TimeSeriesAverage avg = new TimeSeriesAverage(values, counts);
+ AtomicLong value = values.getCounter();
+ AtomicLong count = counts.getCounter();
+
+ // initial values
+ assertValues(avg.getValuePerSecond());
+ assertValues(avg.getValuePerMinute());
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek());
+
+ // no changes in first second
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ assertValues(avg.getValuePerSecond());
+ assertValues(avg.getValuePerMinute());
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek());
+
+ // 2 seconds
+ value.set(42);
+ count.set(2);
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ assertValues(avg.getValuePerSecond(), 21);
+ assertValues(avg.getValuePerMinute());
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek());
+
+ // no changes in 3rd second
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ assertValues(avg.getValuePerSecond(), 0, 21);
+ assertValues(avg.getValuePerMinute());
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek());
+
+ // one minute later
+ for (int i = 0; i < 60; i++) {
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ }
+ assertValues(avg.getValuePerSecond());
+ assertValues(avg.getValuePerMinute(), 21);
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek());
+
+ // another minute later
+ for (int i = 0; i < 60; i++) {
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ }
+ assertValues(avg.getValuePerSecond());
+ assertValues(avg.getValuePerMinute(), 0, 21);
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek());
+
+ // one hour
+ for (int i = 0; i < 60 * 60; i++) {
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ }
+ assertValues(avg.getValuePerSecond());
+ assertValues(avg.getValuePerMinute());
+ assertValues(avg.getValuePerHour(), 21);
+ assertValues(avg.getValuePerWeek());
+
+ // one week
+ for (int i = 0; i < 7 * 24 * 60 * 60; i++) {
+ values.recordOneSecond();
+ counts.recordOneSecond();
+ }
+ assertValues(avg.getValuePerSecond());
+ assertValues(avg.getValuePerMinute());
+ assertValues(avg.getValuePerHour());
+ assertValues(avg.getValuePerWeek(), 21);
+ }
+
+ private static void assertValues(long[] values, long... expected) {
+ for (int i = 0; i < expected.length; i++) {
+ assertEquals(expected[i], values[values.length - i - 1]);
+ }
+ for (int i = expected.length; i < values.length; i++) {
+ assertEquals(0, values[values.length - i - 1]);
+ }
+ }
+}
Added: jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesMaxTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesMaxTest.java?rev=1706407&view=auto
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesMaxTest.java (added)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/stats/TimeSeriesMaxTest.java Fri Oct 2 13:52:23 2015
@@ -0,0 +1,94 @@
+package org.apache.jackrabbit.stats;
+
+import junit.framework.TestCase;
+
+/**
+ * michid document
+ */
+public class TimeSeriesMaxTest extends TestCase {
+
+ public void testMax() {
+ TimeSeriesMax values = new TimeSeriesMax();
+
+ // initial values
+ assertValues(values.getValuePerSecond());
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // no changes in first second
+ values.recordOneSecond();
+ assertValues(values.getValuePerSecond());
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // 2 seconds
+ values.recordValue(42);
+ values.recordOneSecond();
+ assertValues(values.getValuePerSecond(), 42);
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // no changes in 3rd second
+ values.recordOneSecond();
+ assertValues(values.getValuePerSecond(), 0, 42);
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // 4th second
+ values.recordValue(99);
+ values.recordOneSecond();
+ assertValues(values.getValuePerSecond(), 99, 0, 42);
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // one minute later
+ for (int i = 0; i < 60; i++) {
+ values.recordOneSecond();
+ }
+ assertValues(values.getValuePerSecond());
+ assertValues(values.getValuePerMinute(), 99);
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // another minute later
+ for (int i = 0; i < 60; i++) {
+ values.recordOneSecond();
+ }
+ assertValues(values.getValuePerSecond());
+ assertValues(values.getValuePerMinute(), 0, 99);
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek());
+
+ // one hour
+ for (int i = 0; i < 60 * 60; i++) {
+ values.recordOneSecond();
+ }
+ assertValues(values.getValuePerSecond());
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour(), 99);
+ assertValues(values.getValuePerWeek());
+
+ // one week
+ for (int i = 0; i < 7 * 24 * 60 * 60; i++) {
+ values.recordOneSecond();
+ }
+ assertValues(values.getValuePerSecond());
+ assertValues(values.getValuePerMinute());
+ assertValues(values.getValuePerHour());
+ assertValues(values.getValuePerWeek(), 99);
+ }
+
+ private static void assertValues(long[] values, long... expected) {
+ for (int i = 0; i < expected.length; i++) {
+ assertEquals(expected[i], values[values.length - i - 1]);
+ }
+ for (int i = expected.length; i < values.length; i++) {
+ assertEquals(0, values[values.length - i - 1]);
+ }
+ }
+}