/* * Copyright 2013 Gordon Burgett and individual contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.xflatdb.xflat.query; import org.xflatdb.xflat.query.IntervalProvider; import org.xflatdb.xflat.query.NumericIntervalProvider; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; /** * * @author Gordon */ public class NumericIntervalProviderTest { public NumericIntervalProviderTest() { } @Test public void testInteger_ZeroBase() throws Exception { System.out.println("testInteger_ZeroBase_Positive"); IntervalProvider<Integer> provider = NumericIntervalProvider.forInteger(0, 100); assertEquals("[0, 100)", provider.getInterval(0).toString()); assertEquals("[100, 200)", provider.getInterval(100).toString()); assertEquals("[-100, 0)", provider.getInterval(-47).toString()); assertEquals("[-300, -200)", provider.getInterval(-300).toString()); assertEquals("[100, 200)", provider.nextInterval(provider.getInterval(2), 1).toString()); assertEquals("[200, 300)", provider.nextInterval(provider.getInterval(2), 2).toString()); assertEquals("[0, 100)", provider.nextInterval(provider.getInterval(-2), 1).toString()); assertEquals("[-200, -100)", provider.nextInterval(provider.getInterval(2), -2).toString()); } @Test public void testInteger_OffsetBase() throws Exception { System.out.println("testInteger_ZeroBase_Positive"); IntervalProvider<Integer> provider = NumericIntervalProvider.forInteger(2, 100); assertEquals("[-98, 2)", provider.getInterval(0).toString()); assertEquals("[102, 202)", provider.getInterval(102).toString()); assertEquals("[-98, 2)", provider.getInterval(-47).toString()); assertEquals("[-398, -298)", provider.getInterval(-398).toString()); assertEquals("[102, 202)", provider.nextInterval(provider.getInterval(2), 1).toString()); assertEquals("[202, 302)", provider.nextInterval(provider.getInterval(2), 2).toString()); assertEquals("[2, 102)", provider.nextInterval(provider.getInterval(-2), 1).toString()); assertEquals("[-198, -98)", provider.nextInterval(provider.getInterval(2), -2).toString()); } @Test public void testInteger_NegativeBase() throws Exception { System.out.println("testInteger_ZeroBase_Positive"); IntervalProvider<Integer> provider = NumericIntervalProvider.forInteger(-2, 37); assertEquals("[-2, 35)", provider.getInterval(0).toString()); assertEquals("[35, 72)", provider.getInterval(35).toString()); assertEquals("[-76, -39)", provider.getInterval(-47).toString()); } }