@Test public void rangeSeekByNumberOverPartitions() throws Exception { PartitionedIndexReader indexReader = createPartitionedReaderFromReaders(); IndexQuery.RangePredicate<?> query = IndexQuery.range( 1, 1, true, 2, true ); when( indexReader1.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 1 ) ); when( indexReader2.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 2 ) ); when( indexReader3.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 3 ) ); LongSet results = PrimitiveLongCollections.asSet( indexReader.query( query ) ); verifyResult( results ); }
@Test public void scanOverPartitions() throws Exception { PartitionedIndexReader indexReader = createPartitionedReaderFromReaders(); IndexQuery.ExistsPredicate query = IndexQuery.exists( 1 ); when( indexReader1.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 1 ) ); when( indexReader2.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 2 ) ); when( indexReader3.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 3 ) ); LongSet results = PrimitiveLongCollections.asSet( indexReader.query( query ) ); verifyResult( results ); }
@Test public void seekOverAllPartitions() throws Exception { PartitionedIndexReader indexReader = createPartitionedReaderFromReaders(); IndexQuery.ExactPredicate query = IndexQuery.exact( 1, "Test" ); when( indexReader1.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 1 ) ); when( indexReader2.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 2 ) ); when( indexReader3.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 3 ) ); LongSet results = PrimitiveLongCollections.asSet( indexReader.query( query ) ); verifyResult( results ); }
@Test public void rangeSeekByStringOverPartitions() throws Exception { PartitionedIndexReader indexReader = createPartitionedReaderFromReaders(); IndexQuery.RangePredicate<?> query = IndexQuery.range( 1, "a", false, "b", true ); when( indexReader1.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 1 ) ); when( indexReader2.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 2 ) ); when( indexReader3.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 3 ) ); LongSet results = PrimitiveLongCollections.asSet( indexReader.query( query ) ); verifyResult( results ); }
@Test public void rangeSeekByPrefixOverPartitions() throws Exception { PartitionedIndexReader indexReader = createPartitionedReaderFromReaders(); IndexQuery.StringPrefixPredicate query = IndexQuery.stringPrefix( 1, stringValue( "prefix" ) ); when( indexReader1.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 1 ) ); when( indexReader2.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 2 ) ); when( indexReader3.query( query ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, 3 ) ); LongSet results = PrimitiveLongCollections.asSet( indexReader.query( query ) ); verifyResult( results ); }
@Test public void mustCombineResultFromExistsPredicate() throws Exception { // given IndexQuery.ExistsPredicate exists = IndexQuery.exists( PROP_KEY ); long lastId = 0; for ( IndexReader aliveReader : aliveReaders ) { when( aliveReader.query( exists ) ).thenReturn( PrimitiveLongResourceCollections.iterator( null, lastId++, lastId++ ) ); } // when LongIterator result = fusionIndexReader.query( exists ); // then LongSet resultSet = PrimitiveLongCollections.asSet( result ); for ( long i = 0L; i < lastId; i++ ) { assertTrue( "Expected to contain " + i + ", but was " + resultSet, resultSet.contains( i ) ); } }
@Test void convertJavaCollectionToSetOfPrimitives() { List<Long> longs = asList( 1L, 4L, 7L ); LongSet longSet = PrimitiveLongCollections.asSet( longs ); assertTrue( longSet.contains( 1L ) ); assertTrue( longSet.contains( 4L ) ); assertTrue( longSet.contains( 7L ) ); assertEquals( 3, longSet.size() ); }