package mil.nga.giat.geowave.core.geotime.store.query; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Date; import mil.nga.giat.geowave.core.geotime.store.query.TemporalRange; import mil.nga.giat.geowave.core.index.sfc.data.NumericRange; import org.junit.Test; public class TemporalRangeTest { @Test public void test() { TemporalRange range = new TemporalRange( new Date( 100), new Date( 1000)); assertFalse(range.isWithin(new Date( 10))); assertFalse(range.isWithin(new Date( 100000))); assertTrue(range.isWithin(new Date( 800))); assertFalse(range.isWithin(new NumericRange( 20, 99))); assertFalse(range.isWithin(new NumericRange( 1001, 9900))); assertTrue(range.isWithin(new NumericRange( 998, 9900))); assertTrue(range.isWithin(new NumericRange( 20, 199))); assertTrue(range.isWithin(new NumericRange( 150, 199))); assertTrue(check( new NumericRange( -1, 1), new NumericRange( -1, 1))); assertFalse(check( new NumericRange( 9, 19), new NumericRange( 20, 30))); assertTrue(check( new NumericRange( 11, 21), new NumericRange( 20, 30))); assertTrue(check( new NumericRange( 20, 30), new NumericRange( 20, 30))); assertFalse(check( new NumericRange( 9, 19), new NumericRange( 20, 30))); assertTrue(check( new NumericRange( 11, 21), new NumericRange( 20, 30))); assertTrue(check( new NumericRange( 21, 29), new NumericRange( 20, 30))); assertTrue(check( new NumericRange( 20, 30), new NumericRange( 21, 29))); assertTrue(check( new NumericRange( 20, 30), new NumericRange( 11, 21))); assertFalse(check( new NumericRange( 20, 30), new NumericRange( 9, 19))); assertTrue(check( new NumericRange( -3, -1), new NumericRange( -2, 0))); assertTrue(check( new NumericRange( -2, 0), new NumericRange( -3, -1))); assertFalse(check( new NumericRange( -3, 1), new NumericRange( 2, 4))); assertTrue(check( new NumericRange( -3, 1), new NumericRange( -2, 0))); assertTrue(check( new NumericRange( -2, 0), new NumericRange( -3, 1))); assertTrue(check( new NumericRange( -2, 0), new NumericRange( -3, -1))); assertTrue(check( new NumericRange( -3, -1), new NumericRange( -2, 0))); assertTrue(check( new NumericRange( -2, 0), new NumericRange( -1, 1))); assertTrue(check( new NumericRange( -1, 3), new NumericRange( 0, 2))); assertFalse(check( new NumericRange( -1, -0.5), new NumericRange( 0, 2))); assertTrue(check( new NumericRange( 0, 2), new NumericRange( -1, 3))); assertTrue(check( new NumericRange( 0, 2), new NumericRange( -1, 3))); assertFalse(check( new NumericRange( -1, 2), new NumericRange( 3, 4))); assertFalse(check( new NumericRange( -1, 2), new NumericRange( 3, 6))); assertTrue(check( new NumericRange( -1, 2), new NumericRange( 1, 4))); } public static boolean check( NumericRange r1, NumericRange r2 ) { double t0 = r1.getMax() - r2.getMin(); double t1 = r2.getMax() - r1.getMin(); return !(Math.abs(t0 - t1) > (t0 + t1)); } }