/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.github.geophile.erdo.map.mergescan; import org.junit.BeforeClass; import org.junit.Test; import java.io.IOException; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.fail; public class MultiRecordKeyTest { @BeforeClass public static void beforeClass() throws IOException { TestKey.testErdoId(ERDO_ID); } @Test public void badKeyRange() { try { keyRange(10, 10); fail(); } catch (AssertionError e) { } try { keyRange(10, 5); fail(); } catch (AssertionError e) { } try { keyRange(null, 10); fail(); } catch (AssertionError e) { } } @Test public void testXNXN() { assertEquals(0, keyRange(10, null).compareTo(keyRange(9, null))); assertEquals(0, keyRange(10, null).compareTo(keyRange(10, null))); assertEquals(0, keyRange(10, null).compareTo(keyRange(11, null))); } @Test public void testXNXX() { assertEquals(1, keyRange(10, null).compareTo(keyRange(8, 9))); assertEquals(1, keyRange(10, null).compareTo(keyRange(8, 10))); assertEquals(0, keyRange(10, null).compareTo(keyRange(8, 11))); assertEquals(1, keyRange(10, null).compareTo(keyRange(9, 10))); assertEquals(0, keyRange(10, null).compareTo(keyRange(9, 11))); assertEquals(0, keyRange(10, null).compareTo(keyRange(10, 11))); assertEquals(0, keyRange(10, null).compareTo(keyRange(11, 12))); } @Test public void testXXXN() { assertEquals(0, keyRange(10, 20).compareTo(keyRange(9, null))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(10, null))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(11, null))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(19, null))); assertEquals(-1, keyRange(10, 20).compareTo(keyRange(20, null))); assertEquals(-1, keyRange(10, 20).compareTo(keyRange(21, null))); } @Test public void testXXXX() { assertEquals(1, keyRange(10, 20).compareTo(keyRange(5, 9))); assertEquals(1, keyRange(10, 20).compareTo(keyRange(5, 10))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(5, 11))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(9, 19))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(9, 20))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(9, 21))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(10, 19))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(10, 20))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(10, 21))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(11, 19))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(11, 20))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(11, 21))); assertEquals(0, keyRange(10, 20).compareTo(keyRange(19, 30))); assertEquals(-1, keyRange(10, 20).compareTo(keyRange(20, 30))); assertEquals(-1, keyRange(10, 20).compareTo(keyRange(21, 30))); } private MultiRecordKey keyRange(Integer lo, Integer hi) { TestKey loKey = lo == null ? null : new TestKey(lo); TestKey hiKey = hi == null ? null : new TestKey(hi); return new MultiRecordKey(loKey, hiKey); } private static final int ERDO_ID = 1; }