public void testMillionChanges() throws Exception {
    String text = "";
    String name = NAME1;
    int maxver = 2000; // Save 2000 versions.
    Benchmark mark = new Benchmark();

    mark.start();
    for (int i = 0; i < maxver; i++) {
      text = text + ".";
      engine.saveText(name, text);
    }

    mark.stop();

    System.out.println("Benchmark: " + mark.toString(2000) + " pages/second");
    WikiPage pageinfo = engine.getPage(NAME1);

    assertEquals("wrong version", maxver, pageinfo.getVersion());

    // +2 comes from \r\n.
    assertEquals("wrong text", maxver + 2, engine.getText(NAME1).length());
  }
  private void runMassiveFileTest(int maxpages) throws Exception {
    String text = "Testing, 1, 2, 3: ";
    String name = NAME1;
    Benchmark mark = new Benchmark();

    System.out.println("Building a massive repository of " + maxpages + " pages...");

    mark.start();
    for (int i = 0; i < maxpages; i++) {
      engine.saveText(name + i, text + i);
    }
    mark.stop();

    System.out.println("Total time to save " + maxpages + " pages was " + mark.toString());
    System.out.println("Saved " + mark.toString(maxpages) + " pages/second");

    mark.reset();

    mark.start();
    Collection pages = engine.getPageManager().getAllPages();
    mark.stop();

    System.out.println("Got a list of all pages in " + mark);

    mark.reset();
    mark.start();

    for (Iterator i = pages.iterator(); i.hasNext(); ) {
      String foo = engine.getPureText((WikiPage) i.next());

      assertNotNull(foo);
    }
    mark.stop();

    System.out.println("Read through all of the pages in " + mark);
    System.out.println("which is " + mark.toString(maxpages) + " pages/second");
  }