⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testperftaskslogic.java

📁 lucene2.2.0版本
💻 JAVA
字号:
/** * 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.lucene.benchmark.byTask;import java.io.StringReader;import org.apache.lucene.benchmark.byTask.Benchmark;import org.apache.lucene.benchmark.byTask.tasks.CountingSearchTestTask;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.IndexWriter;import junit.framework.TestCase;/** * Test very simply that perf tasks - simple algorithms - are doing what they should. */public class TestPerfTasksLogic extends TestCase {  private static final boolean DEBUG = false;  static final String NEW_LINE = System.getProperty("line.separator");    // properties in effect in all tests here  static final String propLines [] = {    "directory=RAMDirectory",    "print.props=false",  };    /**   * @param name test name   */  public TestPerfTasksLogic(String name) {    super(name);  }  /**   * Test index creation logic   */  public void testIndexAndSearchTasks() throws Exception {    // 1. alg definition (required in every "logic" test)    String algLines[] = {        "ResetSystemErase",        "CreateIndex",        "{ AddDoc } : 1000",        "Optimize",        "CloseIndex",        "OpenReader",        "{ CountingSearchTest } : 200",        "CloseReader",        "[ CountingSearchTest > : 70",        "[ CountingSearchTest > : 9",    };        // 2. we test this value later    CountingSearchTestTask.numSearches = 0;        // 3. execute the algorithm  (required in every "logic" test)    Benchmark benchmark = execBenchmark(algLines);    // 4. test specific checks after the benchmark run completed.    assertEquals("TestSearchTask was supposed to be called!",279,CountingSearchTestTask.numSearches);    assertTrue("Index does not exist?...!", IndexReader.indexExists(benchmark.getRunData().getDirectory()));    // now we should be able to open the index for write.     IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false);    iw.close();    IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory());    assertEquals("1000 docs were added to the index, this is what we expect to find!",1000,ir.numDocs());  }  /**   * Test Exhasting Doc Maker logic   */  public void testExhaustDocMaker() throws Exception {    // 1. alg definition (required in every "logic" test)    String algLines[] = {        "# ----- properties ",        "doc.maker=org.apache.lucene.benchmark.byTask.feeds.SimpleDocMaker",        "doc.add.log.step=1",        "doc.term.vector=false",        "doc.maker.forever=false",        "directory=RAMDirectory",        "doc.stored=false",        "doc.tokenized=false",        "# ----- alg ",        "CreateIndex",        "{ AddDoc } : * ",        "Optimize",        "CloseIndex",        "OpenReader",        "{ CountingSearchTest } : 100",        "CloseReader",        "[ CountingSearchTest > : 30",        "[ CountingSearchTest > : 9",    };        // 2. we test this value later    CountingSearchTestTask.numSearches = 0;        // 3. execute the algorithm  (required in every "logic" test)    Benchmark benchmark = execBenchmark(algLines);    // 4. test specific checks after the benchmark run completed.    assertEquals("TestSearchTask was supposed to be called!",139,CountingSearchTestTask.numSearches);    assertTrue("Index does not exist?...!", IndexReader.indexExists(benchmark.getRunData().getDirectory()));    // now we should be able to open the index for write.     IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false);    iw.close();    IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory());    assertEquals("1 docs were added to the index, this is what we expect to find!",1,ir.numDocs());  }    // create the benchmark and execute it.   private Benchmark execBenchmark(String[] algLines) throws Exception {    String algText = algLinesToText(algLines);    logTstLogic(algText);    Benchmark benchmark = new Benchmark(new StringReader(algText));    benchmark.execute();    return benchmark;  }    // catenate alg lines to make the alg text  private String algLinesToText(String[] algLines) {    String indent = "  ";    StringBuffer sb = new StringBuffer();    for (int i = 0; i < propLines.length; i++) {      sb.append(indent).append(propLines[i]).append(NEW_LINE);    }    for (int i = 0; i < algLines.length; i++) {      sb.append(indent).append(algLines[i]).append(NEW_LINE);    }    return sb.toString();  }  private void logTstLogic (String txt) {    if (!DEBUG)       return;    System.out.println("Test logic of:");    System.out.println(txt);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -