/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.epl.expression.ops; import com.espertech.esper.epl.expression.time.ExprTimePeriodEvalDeltaConstGivenDelta; import com.espertech.esper.epl.expression.time.ExprTimePeriodEvalDeltaResult; import junit.framework.TestCase; public class TestExprTimePeriodEvalDeltaConstMsec extends TestCase { public void testComputeDelta() { ExprTimePeriodEvalDeltaConstGivenDelta delta500 = new ExprTimePeriodEvalDeltaConstGivenDelta(500); assertEquals(500, delta500.deltaAdd(0)); assertEquals(500, delta500.deltaSubtract(0)); ExprTimePeriodEvalDeltaConstGivenDelta delta10k = new ExprTimePeriodEvalDeltaConstGivenDelta(10000); assertEquals(10000, delta10k.deltaAdd(0)); assertEquals(10000, delta10k.deltaSubtract(0)); // With current=2300, ref=1000, and interval=500, expect 2500 as next interval and 200 as solution // the reference will stay the same since the computation is cheap without updated reference ExprTimePeriodEvalDeltaResult result = delta500.deltaAddWReference(2300, 1000); assertEquals(200, result.getDelta()); assertEquals(1000, result.getLastReference()); result = delta500.deltaAddWReference(2300, 4200); assertEquals(400, result.getDelta()); assertEquals(4200, result.getLastReference()); result = delta500.deltaAddWReference(2200, 4200); assertEquals(500, result.getDelta()); assertEquals(4200, result.getLastReference()); result = delta500.deltaAddWReference(2200, 2200); assertEquals(500, result.getDelta()); assertEquals(2200, result.getLastReference()); result = delta500.deltaAddWReference(2201, 2200); assertEquals(499, result.getDelta()); assertEquals(2200, result.getLastReference()); result = delta500.deltaAddWReference(2600, 2200); assertEquals(100, result.getDelta()); assertEquals(2200, result.getLastReference()); result = delta500.deltaAddWReference(2699, 2200); assertEquals(1, result.getDelta()); assertEquals(2200, result.getLastReference()); result = delta500.deltaAddWReference(2699, 2700); assertEquals(1, result.getDelta()); assertEquals(2700, result.getLastReference()); result = delta10k.deltaAddWReference(2699, 2700); assertEquals(1, result.getDelta()); assertEquals(2700, result.getLastReference()); result = delta10k.deltaAddWReference(2700, 2700); assertEquals(10000, result.getDelta()); assertEquals(2700, result.getLastReference()); result = delta10k.deltaAddWReference(2700, 6800); assertEquals(4100, result.getDelta()); assertEquals(6800, result.getLastReference()); result = delta10k.deltaAddWReference(23050, 16800); assertEquals(3750, result.getDelta()); assertEquals(16800, result.getLastReference()); } }