namespace {

  /* If we're in the middle of the original line, copy the string
  only up to the cursor position into buf, so tab completion
  will result in buf's containing only the tab-completed
  path/filename. */

  class Test {

    Test() {}
    ~Test() {}

    /** Call this method to
            run the test

        \param n test number
        \returns the test result
    */
    bool Run(int n);

    /** Call this method to
        stop the test

    \param n test number
    \returns the test result
    */
    bool Run(int n);

  };

}

