@Test public void testNoPartial() throws IOException { assertSame(ScanResultCache.EMPTY_RESULT_ARRAY, resultCache.addAndGet(ScanResultCache.EMPTY_RESULT_ARRAY, false)); assertSame(ScanResultCache.EMPTY_RESULT_ARRAY, resultCache.addAndGet(ScanResultCache.EMPTY_RESULT_ARRAY, true)); int count = 10; Result[] results = new Result[count]; for (int i = 0; i < count; i++) { results[i] = Result.create(Arrays.asList(createCell(i, CQ1))); } assertSame(results, resultCache.addAndGet(results, false)); }
@Test public void testCombine1() throws IOException { Result previousResult = Result.create(Arrays.asList(createCell(0, CQ1)), null, false, true); Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, true); Result result3 = Result.create(Arrays.asList(createCell(1, CQ3)), null, false, true); Result[] results = resultCache.addAndGet(new Result[] { previousResult, result1 }, false); assertEquals(1, results.length); assertSame(previousResult, results[0]); assertEquals(0, resultCache.addAndGet(new Result[] { result2 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result3 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[0], true).length); results = resultCache.addAndGet(new Result[0], false); assertEquals(1, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(3, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ3))); }
@Test public void testCombine4() throws IOException { Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, false); Result nextResult1 = Result.create(Arrays.asList(createCell(2, CQ1)), null, false, true); Result nextResult2 = Result.create(Arrays.asList(createCell(2, CQ2)), null, false, false); assertEquals(0, resultCache.addAndGet(new Result[] { result1 }, false).length); Result[] results = resultCache.addAndGet(new Result[] { result2, nextResult1 }, false); assertEquals(1, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(2, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); results = resultCache.addAndGet(new Result[] { nextResult2 }, false); assertEquals(1, results.length); assertEquals(2, Bytes.toInt(results[0].getRow())); assertEquals(2, results[0].rawCells().length); assertEquals(2, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(2, Bytes.toInt(results[0].getValue(CF, CQ2))); } }
@Test public void testCombine2() throws IOException { Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, true); Result result3 = Result.create(Arrays.asList(createCell(1, CQ3)), null, false, true); Result nextResult1 = Result.create(Arrays.asList(createCell(2, CQ1)), null, false, true); Result nextToNextResult1 = Result.create(Arrays.asList(createCell(3, CQ2)), null, false, false); assertEquals(0, resultCache.addAndGet(new Result[] { result1 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result2 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result3 }, false).length); Result[] results = resultCache.addAndGet(new Result[] { nextResult1 }, false); assertEquals(1, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(3, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ3))); results = resultCache.addAndGet(new Result[] { nextToNextResult1 }, false); assertEquals(2, results.length); assertEquals(2, Bytes.toInt(results[0].getRow())); assertEquals(1, results[0].rawCells().length); assertEquals(2, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(3, Bytes.toInt(results[1].getRow())); assertEquals(1, results[1].rawCells().length); assertEquals(3, Bytes.toInt(results[1].getValue(CF, CQ2))); }
@Test public void testCombine3() throws IOException { Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, true); Result nextResult1 = Result.create(Arrays.asList(createCell(2, CQ1)), null, false, false); Result nextToNextResult1 = Result.create(Arrays.asList(createCell(3, CQ1)), null, false, true); assertEquals(0, resultCache.addAndGet(new Result[] { result1 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result2 }, false).length); Result[] results = resultCache.addAndGet(new Result[] { nextResult1, nextToNextResult1 }, false); assertEquals(2, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(2, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); assertEquals(2, Bytes.toInt(results[1].getRow())); assertEquals(1, results[1].rawCells().length); assertEquals(2, Bytes.toInt(results[1].getValue(CF, CQ1))); results = resultCache.addAndGet(new Result[0], false); assertEquals(1, results.length); assertEquals(3, Bytes.toInt(results[0].getRow())); assertEquals(1, results[0].rawCells().length); assertEquals(3, Bytes.toInt(results[0].getValue(CF, CQ1))); }
@Test public void testNoPartial() throws IOException { assertSame(ScanResultCache.EMPTY_RESULT_ARRAY, resultCache.addAndGet(ScanResultCache.EMPTY_RESULT_ARRAY, false)); assertSame(ScanResultCache.EMPTY_RESULT_ARRAY, resultCache.addAndGet(ScanResultCache.EMPTY_RESULT_ARRAY, true)); int count = 10; Result[] results = new Result[count]; for (int i = 0; i < count; i++) { results[i] = Result.create(Arrays.asList(createCell(i, CQ1))); } assertSame(results, resultCache.addAndGet(results, false)); }
@Test public void testCombine1() throws IOException { Result previousResult = Result.create(Arrays.asList(createCell(0, CQ1)), null, false, true); Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, true); Result result3 = Result.create(Arrays.asList(createCell(1, CQ3)), null, false, true); Result[] results = resultCache.addAndGet(new Result[] { previousResult, result1 }, false); assertEquals(1, results.length); assertSame(previousResult, results[0]); assertEquals(0, resultCache.addAndGet(new Result[] { result2 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result3 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[0], true).length); results = resultCache.addAndGet(new Result[0], false); assertEquals(1, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(3, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ3))); }
@Test public void testCombine3() throws IOException { Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, true); Result nextResult1 = Result.create(Arrays.asList(createCell(2, CQ1)), null, false, false); Result nextToNextResult1 = Result.create(Arrays.asList(createCell(3, CQ1)), null, false, true); assertEquals(0, resultCache.addAndGet(new Result[] { result1 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result2 }, false).length); Result[] results = resultCache.addAndGet(new Result[] { nextResult1, nextToNextResult1 }, false); assertEquals(2, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(2, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); assertEquals(2, Bytes.toInt(results[1].getRow())); assertEquals(1, results[1].rawCells().length); assertEquals(2, Bytes.toInt(results[1].getValue(CF, CQ1))); results = resultCache.addAndGet(new Result[0], false); assertEquals(1, results.length); assertEquals(3, Bytes.toInt(results[0].getRow())); assertEquals(1, results[0].rawCells().length); assertEquals(3, Bytes.toInt(results[0].getValue(CF, CQ1))); }
@Test public void testCombine4() throws IOException { Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, false); Result nextResult1 = Result.create(Arrays.asList(createCell(2, CQ1)), null, false, true); Result nextResult2 = Result.create(Arrays.asList(createCell(2, CQ2)), null, false, false); assertEquals(0, resultCache.addAndGet(new Result[] { result1 }, false).length); Result[] results = resultCache.addAndGet(new Result[] { result2, nextResult1 }, false); assertEquals(1, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(2, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); results = resultCache.addAndGet(new Result[] { nextResult2 }, false); assertEquals(1, results.length); assertEquals(2, Bytes.toInt(results[0].getRow())); assertEquals(2, results[0].rawCells().length); assertEquals(2, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(2, Bytes.toInt(results[0].getValue(CF, CQ2))); } }
@Test public void testCombine2() throws IOException { Result result1 = Result.create(Arrays.asList(createCell(1, CQ1)), null, false, true); Result result2 = Result.create(Arrays.asList(createCell(1, CQ2)), null, false, true); Result result3 = Result.create(Arrays.asList(createCell(1, CQ3)), null, false, true); Result nextResult1 = Result.create(Arrays.asList(createCell(2, CQ1)), null, false, true); Result nextToNextResult1 = Result.create(Arrays.asList(createCell(3, CQ2)), null, false, false); assertEquals(0, resultCache.addAndGet(new Result[] { result1 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result2 }, false).length); assertEquals(0, resultCache.addAndGet(new Result[] { result3 }, false).length); Result[] results = resultCache.addAndGet(new Result[] { nextResult1 }, false); assertEquals(1, results.length); assertEquals(1, Bytes.toInt(results[0].getRow())); assertEquals(3, results[0].rawCells().length); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ2))); assertEquals(1, Bytes.toInt(results[0].getValue(CF, CQ3))); results = resultCache.addAndGet(new Result[] { nextToNextResult1 }, false); assertEquals(2, results.length); assertEquals(2, Bytes.toInt(results[0].getRow())); assertEquals(1, results[0].rawCells().length); assertEquals(2, Bytes.toInt(results[0].getValue(CF, CQ1))); assertEquals(3, Bytes.toInt(results[1].getRow())); assertEquals(1, results[1].rawCells().length); assertEquals(3, Bytes.toInt(results[1].getValue(CF, CQ2))); }