+++ /dev/null
-package org.apache.lucene.facet.search;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.IOUtils;
-import org.apache.lucene.util._TestUtil;
-import org.junit.Test;
-
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.facet.FacetTestUtils;
-import org.apache.lucene.facet.FacetTestUtils.IndexTaxonomyReaderPair;
-import org.apache.lucene.facet.FacetTestUtils.IndexTaxonomyWriterPair;
-import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
-
-/**
- * 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.
- */
-
-public class TestTotalFacetCounts extends LuceneTestCase {
-
- private static void initCache(int numEntries) {
- TotalFacetCountsCache.getSingleton().clear();
- TotalFacetCountsCache.getSingleton().setCacheSize(numEntries); // Set to keep one in mem
- }
-
- @Test
- public void testWriteRead() throws IOException {
- doTestWriteRead(14);
- doTestWriteRead(100);
- doTestWriteRead(7);
- doTestWriteRead(3);
- doTestWriteRead(1);
- }
-
- private void doTestWriteRead(final int partitionSize) throws IOException {
- initCache(1);
-
- // Create temporary RAMDirectories
- Directory[][] dirs = FacetTestUtils.createIndexTaxonomyDirs(1);
- // Create our index/taxonomy writers
- IndexTaxonomyWriterPair[] writers = FacetTestUtils
- .createIndexTaxonomyWriterPair(dirs);
- DefaultFacetIndexingParams iParams = new DefaultFacetIndexingParams() {
- @Override
- protected int fixedPartitionSize() {
- return partitionSize;
- }
- };
- // The counts that the TotalFacetCountsArray should have after adding
- // the below facets to the index.
- int[] expectedCounts = new int[] { 0, 3, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1 };
-
- // Add a facet to the index
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "a", "b");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "c", "d");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "a", "e");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "a", "d");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "c", "g");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "c", "z");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "b", "a");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "1", "2");
- TestTotalFacetCountsCache.addFacets(iParams, writers[0].indexWriter, writers[0].taxWriter, "b", "c");
-
- // Commit Changes
- writers[0].commit();
- writers[0].close();
-
- IndexTaxonomyReaderPair[] readers =
- FacetTestUtils.createIndexTaxonomyReaderPair(dirs);
-
- int[] intArray = new int[iParams.getPartitionSize()];
-
- TotalFacetCountsCache tfcc = TotalFacetCountsCache.getSingleton();
- File tmpFile = _TestUtil.createTempFile("test", "tmp", TEMP_DIR);
- tfcc.store(tmpFile, readers[0].indexReader, readers[0].taxReader, iParams, null);
- tfcc.clear(); // not really required because TFCC overrides on load(), but in the test we need not rely on this.
- tfcc.load(tmpFile, readers[0].indexReader, readers[0].taxReader, iParams);
-
- // now retrieve the one just loaded
- TotalFacetCounts totalCounts =
- tfcc.getTotalCounts(readers[0].indexReader, readers[0].taxReader, iParams, null);
-
- int partition = 0;
- for (int i=0; i<expectedCounts.length; i+=partitionSize) {
- totalCounts.fillTotalCountsForPartition(intArray, partition);
- int[] partitionExpectedCounts = new int[partitionSize];
- int nToCopy = Math.min(partitionSize,expectedCounts.length-i);
- System.arraycopy(expectedCounts, i, partitionExpectedCounts, 0, nToCopy);
- assertTrue("Wrong counts! for partition "+partition+
- "\nExpected:\n" + Arrays.toString(partitionExpectedCounts)+
- "\nActual:\n" + Arrays.toString(intArray),
- Arrays.equals(partitionExpectedCounts, intArray));
- ++partition;
- }
- readers[0].close();
- IOUtils.close(dirs[0]);
- tmpFile.delete();
- }
-
-}