}
@Test
public void testMerge1() throws IOException {
// Create postings list 1.
PostingsListDocSortedPositional postings1a = new PostingsListDocSortedPositional();
postings1a.setCollectionDocumentCount(30);
postings1a.setNumberOfPostings(3);
postings1a.add(13, (short) 5, new TermPositions(new int[] { 1, 4, 5, 10, 23 }, (short) 5));
postings1a.add(14, (short) 2, new TermPositions(new int[] { 2, 23 }, (short) 2));
postings1a.add(24, (short) 1, new TermPositions(new int[] { 1 }, (short) 1));
PostingsListDocSortedPositional postings1b =
PostingsListDocSortedPositional.create(postings1a.serialize());
postings1b.setCollectionDocumentCount(30);
// Create postings list 2.
PostingsListDocSortedPositional postings2a = new PostingsListDocSortedPositional();
postings2a.setCollectionDocumentCount(30);
postings2a.setNumberOfPostings(4);
postings2a.add(2, (short) 3, new TermPositions(new int[] { 2, 10, 11 }, (short) 3));
postings2a.add(11, (short) 4, new TermPositions(new int[] { 2, 23, 43, 69 }, (short) 4));
postings2a.add(19, (short) 1, new TermPositions(new int[] { 1 }, (short) 1));
postings2a.add(25, (short) 2, new TermPositions(new int[] { 10, 57 }, (short) 2));
PostingsListDocSortedPositional postings2b =
PostingsListDocSortedPositional.create(postings2a.serialize());
postings2b.setCollectionDocumentCount(30);
// Now merge and test.
Posting p = new Posting();
PostingsListDocSortedPositional merged;
PostingsReader mergedReader;
merged = PostingsListDocSortedPositional.create(PostingsListDocSortedPositional.merge(
postings1b, postings2b, 30).serialize());
merged.setCollectionDocumentCount(30);
mergedReader = merged.getPostingsReader();
assertEquals(7, merged.getNumberOfPostings());
mergedReader.nextPosting(p);
assertEquals(2, p.getDocno());
assertEquals(3, p.getScore());
mergedReader.nextPosting(p);
assertEquals(11, p.getDocno());
assertEquals(4, p.getScore());
mergedReader.nextPosting(p);
assertEquals(13, p.getDocno());
assertEquals(5, p.getScore());
mergedReader.nextPosting(p);
assertEquals(14, p.getDocno());
assertEquals(2, p.getScore());
mergedReader.nextPosting(p);
assertEquals(19, p.getDocno());
assertEquals(1, p.getScore());
mergedReader.nextPosting(p);
assertEquals(24, p.getDocno());
assertEquals(1, p.getScore());
mergedReader.nextPosting(p);
assertEquals(25, p.getDocno());
assertEquals(2, p.getScore());
merged = PostingsListDocSortedPositional.create(PostingsListDocSortedPositional.merge(
postings2b, postings1b, 30).serialize());
merged.setCollectionDocumentCount(30);
mergedReader = merged.getPostingsReader();
assertEquals(7, merged.getNumberOfPostings());
mergedReader.nextPosting(p);
assertEquals(2, p.getDocno());
assertEquals(3, p.getScore());
mergedReader.nextPosting(p);