Repository: phoenix
Updated Branches:
  refs/heads/4.0 aa2ac700d -> 0420b013d


PHOENIX-1180 Rename test classes so they are properly picked up by the test 
runner (Kyle Buzsaki)


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/0420b013
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/0420b013
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/0420b013

Branch: refs/heads/4.0
Commit: 0420b013d76b6edc7ffc8e047937810c44db78a0
Parents: aa2ac70
Author: James Taylor <jamestay...@apache.org>
Authored: Tue Aug 19 13:03:12 2014 -0700
Committer: James Taylor <jamestay...@apache.org>
Committed: Tue Aug 19 13:04:28 2014 -0700

----------------------------------------------------------------------
 .../RoundFloorCeilExpressionsTest.java          | 230 +++++++++++++++++++
 .../RoundFloorCeilExpressionsUnitTests.java     | 230 -------------------
 .../phoenix/query/KeyRangeCoalesceTest.java     | 161 +++++++++++++
 .../phoenix/query/KeyRangeCoalesceTests.java    | 161 -------------
 .../phoenix/query/KeyRangeIntersectTest.java    |  97 ++++++++
 .../phoenix/query/KeyRangeIntersectTests.java   |  97 --------
 .../apache/phoenix/query/KeyRangeUnionTest.java |  97 ++++++++
 .../phoenix/query/KeyRangeUnionTests.java       |  97 --------
 8 files changed, 585 insertions(+), 585 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsTest.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsTest.java
new file mode 100644
index 0000000..55bcd7f
--- /dev/null
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsTest.java
@@ -0,0 +1,230 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.phoenix.expression;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.phoenix.expression.function.CeilDateExpression;
+import org.apache.phoenix.expression.function.CeilDecimalExpression;
+import org.apache.phoenix.expression.function.FloorDateExpression;
+import org.apache.phoenix.expression.function.FloorDecimalExpression;
+import org.apache.phoenix.expression.function.RoundDateExpression;
+import org.apache.phoenix.expression.function.RoundDecimalExpression;
+import org.apache.phoenix.expression.function.TimeUnit;
+import org.apache.phoenix.schema.IllegalDataException;
+import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.util.DateUtil;
+import org.junit.Test;
+
+/**
+ * 
+ * Unit tests for {@link RoundDecimalExpression}, {@link 
FloorDecimalExpression}
+ * and {@link CeilDecimalExpression}.
+ *
+ * 
+ * @since 3.0.0
+ */
+public class RoundFloorCeilExpressionsTest {
+
+    @Test
+    public void testRoundDecimalExpression() throws Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
+        Expression rde = RoundDecimalExpression.create(bd, 3);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof BigDecimal);
+        BigDecimal value = (BigDecimal)obj;
+        assertEquals(BigDecimal.valueOf(1.239), value);
+    }
+    
+    @Test
+    public void testCeilDecimalExpression() throws Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
+        Expression rde = CeilDecimalExpression.create(bd, 3);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof BigDecimal);
+        BigDecimal value = (BigDecimal)obj;
+        assertEquals(BigDecimal.valueOf(1.239), value);
+    }
+    
+    @Test
+    public void testCeilDecimalExpressionNoop() throws Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(5, 
PDataType.INTEGER);
+        Expression rde = CeilDecimalExpression.create(bd, 3);
+        assertEquals(rde, bd);
+    }
+    
+    @Test
+    public void testFloorDecimalExpressionNoop() throws Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(5, 
PDataType.INTEGER);
+        Expression rde = FloorDecimalExpression.create(bd, 3);
+        assertEquals(rde, bd);
+    }
+    
+    @Test
+    public void testRoundDecimalExpressionNoop() throws Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(5, 
PDataType.INTEGER);
+        Expression rde = RoundDecimalExpression.create(bd, 3);
+        assertEquals(rde, bd);
+    }
+    
+    @Test
+    public void testFloorDecimalExpression() throws Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
+        Expression rde = FloorDecimalExpression.create(bd, 3);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof BigDecimal);
+        BigDecimal value = (BigDecimal)obj;
+        assertEquals(BigDecimal.valueOf(1.238), value);
+    }
+    
+    @Test
+    public void testRoundDecimalExpressionScaleParamValidation() throws 
Exception {
+        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
+        LiteralExpression scale = LiteralExpression.newConstant("3", 
PDataType.VARCHAR);
+        List<Expression> exprs = new ArrayList<Expression>(2);
+        exprs.add(bd);
+        exprs.add(scale);
+        try {
+            RoundDecimalExpression.create(exprs);
+            fail("Evaluation should have failed because only an INTEGER is 
allowed for second param in a RoundDecimalExpression");
+        } catch(IllegalDataException e) {
+
+        }
+    }
+    
+    @Test
+    public void testRoundDateExpression() throws Exception {
+        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        Expression rde = RoundDateExpression.create(date, TimeUnit.DAY);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof Date);
+        Date value = (Date)obj;
+        assertEquals(DateUtil.parseDate("2012-01-02 00:00:00"), value);
+    }
+    
+    @Test
+    public void testRoundDateExpressionWithMultiplier() throws Exception {
+        Expression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        Expression rde = RoundDateExpression.create(date, TimeUnit.MINUTE, 10);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof Date);
+        Date value = (Date)obj;
+        assertEquals(DateUtil.parseDate("2012-01-01 14:30:00"), value);
+    }
+    
+    @Test
+    public void testCeilDateExpression() throws Exception {
+        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        Expression rde = CeilDateExpression.create(date, TimeUnit.DAY);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof Date);
+        Date value = (Date)obj;
+        assertEquals(DateUtil.parseDate("2012-01-02 00:00:00"), value);
+    }
+    
+    @Test
+    public void testCeilDateExpressionWithMultiplier() throws Exception {
+        Expression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        Expression rde = CeilDateExpression.create(date, TimeUnit.SECOND, 10);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof Date);
+        Date value = (Date)obj;
+        assertEquals(DateUtil.parseDate("2012-01-01 14:25:30"), value);
+    }
+    
+    @Test
+    public void testFloorDateExpression() throws Exception {
+        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        Expression rde = FloorDateExpression.create(date, TimeUnit.DAY);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof Date);
+        Date value = (Date)obj;
+        assertEquals(DateUtil.parseDate("2012-01-01 00:00:00"), value);
+    }
+    
+    @Test
+    public void testFloorDateExpressionWithMultiplier() throws Exception {
+        Expression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        Expression rde = FloorDateExpression.create(date, TimeUnit.SECOND, 10);
+        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
+        rde.evaluate(null, ptr);
+        Object obj = rde.getDataType().toObject(ptr);
+        assertTrue(obj instanceof Date);
+        Date value = (Date)obj;
+        assertEquals(DateUtil.parseDate("2012-01-01 14:25:20"), value);
+    }
+    
+    /**
+     * Tests {@link RoundDateExpression} constructor check which only allows 
number of arguments between 2 and 3.
+     */
+    @Test
+    public void testRoundDateExpressionValidation_1() throws Exception {
+        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        List<Expression> exprs = new ArrayList<Expression>(1);
+        exprs.add(date);
+        try {
+            RoundDateExpression.create(exprs);
+            fail("Instantiating a RoundDateExpression with only one argument 
should have failed.");
+        } catch(IllegalArgumentException e) {
+
+        }
+    }
+    
+    /**
+     * Tests {@link RoundDateExpression} constructor for a valid value of time 
unit.
+     */
+    @Test
+    public void testRoundDateExpressionValidation_2() throws Exception {
+        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
+        LiteralExpression timeUnit = LiteralExpression.newConstant("millis", 
PDataType.VARCHAR);
+        List<Expression> exprs = new ArrayList<Expression>(1);
+        exprs.add(date);
+        exprs.add(timeUnit);
+        try {
+            RoundDateExpression.create(exprs);
+            fail("Only a valid time unit represented by TimeUnit enum is 
allowed and millis is invalid.");
+        } catch(IllegalArgumentException e) {
+
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsUnitTests.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsUnitTests.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsUnitTests.java
deleted file mode 100644
index c92fed4..0000000
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/expression/RoundFloorCeilExpressionsUnitTests.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.phoenix.expression;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.math.BigDecimal;
-import java.sql.Date;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.phoenix.expression.function.CeilDateExpression;
-import org.apache.phoenix.expression.function.CeilDecimalExpression;
-import org.apache.phoenix.expression.function.FloorDateExpression;
-import org.apache.phoenix.expression.function.FloorDecimalExpression;
-import org.apache.phoenix.expression.function.RoundDateExpression;
-import org.apache.phoenix.expression.function.RoundDecimalExpression;
-import org.apache.phoenix.expression.function.TimeUnit;
-import org.apache.phoenix.schema.IllegalDataException;
-import org.apache.phoenix.schema.PDataType;
-import org.apache.phoenix.util.DateUtil;
-import org.junit.Test;
-
-/**
- * 
- * Unit tests for {@link RoundDecimalExpression}, {@link 
FloorDecimalExpression}
- * and {@link CeilDecimalExpression}.
- *
- * 
- * @since 3.0.0
- */
-public class RoundFloorCeilExpressionsUnitTests {
-
-    @Test
-    public void testRoundDecimalExpression() throws Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
-        Expression rde = RoundDecimalExpression.create(bd, 3);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof BigDecimal);
-        BigDecimal value = (BigDecimal)obj;
-        assertEquals(BigDecimal.valueOf(1.239), value);
-    }
-    
-    @Test
-    public void testCeilDecimalExpression() throws Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
-        Expression rde = CeilDecimalExpression.create(bd, 3);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof BigDecimal);
-        BigDecimal value = (BigDecimal)obj;
-        assertEquals(BigDecimal.valueOf(1.239), value);
-    }
-    
-    @Test
-    public void testCeilDecimalExpressionNoop() throws Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(5, 
PDataType.INTEGER);
-        Expression rde = CeilDecimalExpression.create(bd, 3);
-        assertEquals(rde, bd);
-    }
-    
-    @Test
-    public void testFloorDecimalExpressionNoop() throws Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(5, 
PDataType.INTEGER);
-        Expression rde = FloorDecimalExpression.create(bd, 3);
-        assertEquals(rde, bd);
-    }
-    
-    @Test
-    public void testRoundDecimalExpressionNoop() throws Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(5, 
PDataType.INTEGER);
-        Expression rde = RoundDecimalExpression.create(bd, 3);
-        assertEquals(rde, bd);
-    }
-    
-    @Test
-    public void testFloorDecimalExpression() throws Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
-        Expression rde = FloorDecimalExpression.create(bd, 3);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof BigDecimal);
-        BigDecimal value = (BigDecimal)obj;
-        assertEquals(BigDecimal.valueOf(1.238), value);
-    }
-    
-    @Test
-    public void testRoundDecimalExpressionScaleParamValidation() throws 
Exception {
-        LiteralExpression bd = LiteralExpression.newConstant(1.23898, 
PDataType.DECIMAL);
-        LiteralExpression scale = LiteralExpression.newConstant("3", 
PDataType.VARCHAR);
-        List<Expression> exprs = new ArrayList<Expression>(2);
-        exprs.add(bd);
-        exprs.add(scale);
-        try {
-            RoundDecimalExpression.create(exprs);
-            fail("Evaluation should have failed because only an INTEGER is 
allowed for second param in a RoundDecimalExpression");
-        } catch(IllegalDataException e) {
-
-        }
-    }
-    
-    @Test
-    public void testRoundDateExpression() throws Exception {
-        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        Expression rde = RoundDateExpression.create(date, TimeUnit.DAY);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof Date);
-        Date value = (Date)obj;
-        assertEquals(DateUtil.parseDate("2012-01-02 00:00:00"), value);
-    }
-    
-    @Test
-    public void testRoundDateExpressionWithMultiplier() throws Exception {
-        Expression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        Expression rde = RoundDateExpression.create(date, TimeUnit.MINUTE, 10);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof Date);
-        Date value = (Date)obj;
-        assertEquals(DateUtil.parseDate("2012-01-01 14:30:00"), value);
-    }
-    
-    @Test
-    public void testCeilDateExpression() throws Exception {
-        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        Expression rde = CeilDateExpression.create(date, TimeUnit.DAY);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof Date);
-        Date value = (Date)obj;
-        assertEquals(DateUtil.parseDate("2012-01-02 00:00:00"), value);
-    }
-    
-    @Test
-    public void testCeilDateExpressionWithMultiplier() throws Exception {
-        Expression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        Expression rde = CeilDateExpression.create(date, TimeUnit.SECOND, 10);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof Date);
-        Date value = (Date)obj;
-        assertEquals(DateUtil.parseDate("2012-01-01 14:25:30"), value);
-    }
-    
-    @Test
-    public void testFloorDateExpression() throws Exception {
-        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        Expression rde = FloorDateExpression.create(date, TimeUnit.DAY);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof Date);
-        Date value = (Date)obj;
-        assertEquals(DateUtil.parseDate("2012-01-01 00:00:00"), value);
-    }
-    
-    @Test
-    public void testFloorDateExpressionWithMultiplier() throws Exception {
-        Expression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        Expression rde = FloorDateExpression.create(date, TimeUnit.SECOND, 10);
-        ImmutableBytesWritable ptr = new ImmutableBytesWritable();
-        rde.evaluate(null, ptr);
-        Object obj = rde.getDataType().toObject(ptr);
-        assertTrue(obj instanceof Date);
-        Date value = (Date)obj;
-        assertEquals(DateUtil.parseDate("2012-01-01 14:25:20"), value);
-    }
-    
-    /**
-     * Tests {@link RoundDateExpression} constructor check which only allows 
number of arguments between 2 and 3.
-     */
-    @Test
-    public void testRoundDateExpressionValidation_1() throws Exception {
-        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        List<Expression> exprs = new ArrayList<Expression>(1);
-        exprs.add(date);
-        try {
-            RoundDateExpression.create(exprs);
-            fail("Instantiating a RoundDateExpression with only one argument 
should have failed.");
-        } catch(IllegalArgumentException e) {
-
-        }
-    }
-    
-    /**
-     * Tests {@link RoundDateExpression} constructor for a valid value of time 
unit.
-     */
-    @Test
-    public void testRoundDateExpressionValidation_2() throws Exception {
-        LiteralExpression date = 
LiteralExpression.newConstant(DateUtil.parseDate("2012-01-01 14:25:28"), 
PDataType.DATE);
-        LiteralExpression timeUnit = LiteralExpression.newConstant("millis", 
PDataType.VARCHAR);
-        List<Expression> exprs = new ArrayList<Expression>(1);
-        exprs.add(date);
-        exprs.add(timeUnit);
-        try {
-            RoundDateExpression.create(exprs);
-            fail("Only a valid time unit represented by TimeUnit enum is 
allowed and millis is invalid.");
-        } catch(IllegalArgumentException e) {
-
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTest.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTest.java
new file mode 100644
index 0000000..7fe7319
--- /dev/null
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTest.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.phoenix.query;
+
+import static org.apache.phoenix.query.KeyRange.EMPTY_RANGE;
+import static org.apache.phoenix.query.KeyRange.EVERYTHING_RANGE;
+import static java.util.Arrays.asList;
+import static org.apache.hadoop.hbase.util.Bytes.toBytes;
+
+import java.util.*;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import org.apache.phoenix.schema.PDataType;
+
+@RunWith(Parameterized.class)
+public class KeyRangeCoalesceTest extends TestCase {
+    private static final Random RANDOM = new Random(1);
+    private final List<KeyRange> expected, input;
+
+    public KeyRangeCoalesceTest(List<KeyRange> expected, List<KeyRange> input) 
{
+        this.expected = expected;
+        this.input = input;
+    }
+
+    @Parameters(name="{0} coalesces to {1}")
+    public static Collection<?> data() {
+        return Arrays.asList(new Object[][] {
+                {expect(
+                    EMPTY_RANGE
+                ),
+                input(
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("Z"), true)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("Z"), true)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), true)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("E"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("Z"), true)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), true)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false),
+                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("Z"), true)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("A"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("A"), true),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("B"), false),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), false, 
toBytes("Z"), false)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("B"), false),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), false, 
toBytes("Z"), false)
+                )},
+                {expect(
+                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("Z"), false)
+                ),
+                input(
+                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("B"), false),
+                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false)
+                )},
+                {expect(
+                    EVERYTHING_RANGE
+                ),
+                input(
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE
+                )},
+                {expect(
+                    EVERYTHING_RANGE
+                ),
+                input(
+                    EVERYTHING_RANGE
+                )},
+                {expect(
+                    EVERYTHING_RANGE
+                ),
+                input(
+                    EMPTY_RANGE,
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE
+                )},
+                {expect(
+                    EMPTY_RANGE
+                ),
+                input(
+                    EMPTY_RANGE
+                )}
+        });
+    }
+    @Test
+    public void coalesce() {
+        assertEquals(expected, KeyRange.coalesce(input));
+        List<KeyRange> tmp = new ArrayList<KeyRange>(input);
+        Collections.reverse(tmp);
+        assertEquals(expected, KeyRange.coalesce(input));
+        Collections.shuffle(tmp, RANDOM);
+        assertEquals(expected, KeyRange.coalesce(input));
+    }
+    
+    private static final List<KeyRange> expect(KeyRange... kr) {
+        return asList(kr);
+    }
+    
+    private static final List<KeyRange> input(KeyRange... kr) {
+        return asList(kr);
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTests.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTests.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTests.java
deleted file mode 100644
index c7f0ce0..0000000
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeCoalesceTests.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.phoenix.query;
-
-import static org.apache.phoenix.query.KeyRange.EMPTY_RANGE;
-import static org.apache.phoenix.query.KeyRange.EVERYTHING_RANGE;
-import static java.util.Arrays.asList;
-import static org.apache.hadoop.hbase.util.Bytes.toBytes;
-
-import java.util.*;
-
-import junit.framework.TestCase;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-import org.apache.phoenix.schema.PDataType;
-
-@RunWith(Parameterized.class)
-public class KeyRangeCoalesceTests extends TestCase {
-    private static final Random RANDOM = new Random(1);
-    private final List<KeyRange> expected, input;
-
-    public KeyRangeCoalesceTests(List<KeyRange> expected, List<KeyRange> 
input) {
-        this.expected = expected;
-        this.input = input;
-    }
-
-    @Parameters(name="{0} coalesces to {1}")
-    public static Collection<?> data() {
-        return Arrays.asList(new Object[][] {
-                {expect(
-                    EMPTY_RANGE
-                ),
-                input(
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("Z"), true)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("Z"), true)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), true)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("E"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("Z"), true)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), true)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("D"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false),
-                        PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("Z"), true)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("A"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("A"), true),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("B"), false),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), false, 
toBytes("Z"), false)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("B"), false),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), false, 
toBytes("Z"), false)
-                )},
-                {expect(
-                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("Z"), false)
-                ),
-                input(
-                        PDataType.CHAR.getKeyRange(toBytes("A"), true, 
toBytes("B"), false),
-                        PDataType.CHAR.getKeyRange(toBytes("B"), true, 
toBytes("Z"), false)
-                )},
-                {expect(
-                    EVERYTHING_RANGE
-                ),
-                input(
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE
-                )},
-                {expect(
-                    EVERYTHING_RANGE
-                ),
-                input(
-                    EVERYTHING_RANGE
-                )},
-                {expect(
-                    EVERYTHING_RANGE
-                ),
-                input(
-                    EMPTY_RANGE,
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE
-                )},
-                {expect(
-                    EMPTY_RANGE
-                ),
-                input(
-                    EMPTY_RANGE
-                )}
-        });
-    }
-    @Test
-    public void coalesce() {
-        assertEquals(expected, KeyRange.coalesce(input));
-        List<KeyRange> tmp = new ArrayList<KeyRange>(input);
-        Collections.reverse(tmp);
-        assertEquals(expected, KeyRange.coalesce(input));
-        Collections.shuffle(tmp, RANDOM);
-        assertEquals(expected, KeyRange.coalesce(input));
-    }
-    
-    private static final List<KeyRange> expect(KeyRange... kr) {
-        return asList(kr);
-    }
-    
-    private static final List<KeyRange> input(KeyRange... kr) {
-        return asList(kr);
-    }
-}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTest.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTest.java
new file mode 100644
index 0000000..f34b956
--- /dev/null
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTest.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.phoenix.query;
+
+import static org.apache.phoenix.query.KeyRange.EMPTY_RANGE;
+import static org.apache.phoenix.query.KeyRange.EVERYTHING_RANGE;
+import static org.apache.hadoop.hbase.util.Bytes.toBytes;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import org.apache.phoenix.schema.PDataType;
+
+@RunWith(Parameterized.class)
+public class KeyRangeIntersectTest extends TestCase {
+    private final KeyRange a, b, intersection;
+
+    public KeyRangeIntersectTest(KeyRange a, KeyRange b, KeyRange 
intersection) {
+        this.a = a;
+        this.b = b;
+        this.intersection = intersection;
+    }
+
+    @Parameters(name="intersection of {0} and {1} is {2}")
+    public static Collection<?> data() {
+        return Arrays.asList(new Object[][] {
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("F"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("F"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("E"), true)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("F"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("E"), false)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
+                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
+                    EMPTY_RANGE
+                },
+                {
+                    EVERYTHING_RANGE,
+                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
+                },
+                {
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE,
+                },
+                {
+                    EMPTY_RANGE,
+                    EVERYTHING_RANGE,
+                    EMPTY_RANGE
+                },
+                {
+                    EMPTY_RANGE,
+                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
+                    EMPTY_RANGE
+                },
+        });
+    }
+    @Test
+    public void intersect() {
+        assertEquals(intersection, a.intersect(b));
+        assertEquals(intersection, b.intersect(a));
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTests.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTests.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTests.java
deleted file mode 100644
index 7d311cf..0000000
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeIntersectTests.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.phoenix.query;
-
-import static org.apache.phoenix.query.KeyRange.EMPTY_RANGE;
-import static org.apache.phoenix.query.KeyRange.EVERYTHING_RANGE;
-import static org.apache.hadoop.hbase.util.Bytes.toBytes;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import junit.framework.TestCase;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-import org.apache.phoenix.schema.PDataType;
-
-@RunWith(Parameterized.class)
-public class KeyRangeIntersectTests extends TestCase {
-    private final KeyRange a, b, intersection;
-
-    public KeyRangeIntersectTests(KeyRange a, KeyRange b, KeyRange 
intersection) {
-        this.a = a;
-        this.b = b;
-        this.intersection = intersection;
-    }
-
-    @Parameters(name="intersection of {0} and {1} is {2}")
-    public static Collection<?> data() {
-        return Arrays.asList(new Object[][] {
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("F"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("F"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("E"), true)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("F"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), false, 
toBytes("E"), false)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
-                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
-                    EMPTY_RANGE
-                },
-                {
-                    EVERYTHING_RANGE,
-                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
-                },
-                {
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE,
-                },
-                {
-                    EMPTY_RANGE,
-                    EVERYTHING_RANGE,
-                    EMPTY_RANGE
-                },
-                {
-                    EMPTY_RANGE,
-                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
-                    EMPTY_RANGE
-                },
-        });
-    }
-    @Test
-    public void intersect() {
-        assertEquals(intersection, a.intersect(b));
-        assertEquals(intersection, b.intersect(a));
-    }
-}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTest.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTest.java
new file mode 100644
index 0000000..f280bbd
--- /dev/null
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTest.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.phoenix.query;
+
+import static org.apache.phoenix.query.KeyRange.EMPTY_RANGE;
+import static org.apache.phoenix.query.KeyRange.EVERYTHING_RANGE;
+import static org.apache.hadoop.hbase.util.Bytes.toBytes;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import org.apache.phoenix.schema.PDataType;
+
+@RunWith(Parameterized.class)
+public class KeyRangeUnionTest extends TestCase {
+    private final KeyRange a, b, union;
+
+    public KeyRangeUnionTest(KeyRange a, KeyRange b, KeyRange union) {
+        this.a = a;
+        this.b = b;
+        this.union = union;
+    }
+
+    @Parameters(name="union of {0} and {1} is {2}")
+    public static Collection<?> data() {
+        return Arrays.asList(new Object[][] {
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("F"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("F"), true)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), false),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("F"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("F"), true)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), false),
+                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), true)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), false),
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
+                },
+                {
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
+                    EMPTY_RANGE,
+                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
+                },
+                {
+                    EVERYTHING_RANGE,
+                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
+                    EVERYTHING_RANGE,
+                },
+                {
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE,
+                },
+                {
+                    EMPTY_RANGE,
+                    EVERYTHING_RANGE,
+                    EVERYTHING_RANGE,
+                },
+        });
+    }
+    @Test
+    public void union() {
+        assertEquals(union, a.union(b));
+        assertEquals(union, b.union(a));
+    }
+}

http://git-wip-us.apache.org/repos/asf/phoenix/blob/0420b013/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTests.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTests.java 
b/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTests.java
deleted file mode 100644
index 5a442eb..0000000
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/query/KeyRangeUnionTests.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.phoenix.query;
-
-import static org.apache.phoenix.query.KeyRange.EMPTY_RANGE;
-import static org.apache.phoenix.query.KeyRange.EVERYTHING_RANGE;
-import static org.apache.hadoop.hbase.util.Bytes.toBytes;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import junit.framework.TestCase;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-
-import org.apache.phoenix.schema.PDataType;
-
-@RunWith(Parameterized.class)
-public class KeyRangeUnionTests extends TestCase {
-    private final KeyRange a, b, union;
-
-    public KeyRangeUnionTests(KeyRange a, KeyRange b, KeyRange union) {
-        this.a = a;
-        this.b = b;
-        this.union = union;
-    }
-
-    @Parameters(name="union of {0} and {1} is {2}")
-    public static Collection<?> data() {
-        return Arrays.asList(new Object[][] {
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("F"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("F"), true)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), false),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("F"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("F"), true)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), false),
-                    PDataType.CHAR.getKeyRange(toBytes("D"), true, 
toBytes("E"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), true)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), false, 
toBytes("E"), false),
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true),
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), true)
-                },
-                {
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
-                    EMPTY_RANGE,
-                    PDataType.CHAR.getKeyRange(toBytes("C"), true, 
toBytes("E"), false),
-                },
-                {
-                    EVERYTHING_RANGE,
-                    PDataType.CHAR.getKeyRange(toBytes("E"), false, 
toBytes("F"), true),
-                    EVERYTHING_RANGE,
-                },
-                {
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE,
-                },
-                {
-                    EMPTY_RANGE,
-                    EVERYTHING_RANGE,
-                    EVERYTHING_RANGE,
-                },
-        });
-    }
-    @Test
-    public void union() {
-        assertEquals(union, a.union(b));
-        assertEquals(union, b.union(a));
-    }
-}

Reply via email to