public virtual void TestQPA()
{
AssertQueryEquals("term term^3.0 term", qpAnalyzer, "term term^3.0 term");
AssertQueryEquals("term stop^3.0 term", qpAnalyzer, "term term");
AssertQueryEquals("term term term", qpAnalyzer, "term term term");
AssertQueryEquals("term +stop term", qpAnalyzer, "term term");
AssertQueryEquals("term -stop term", qpAnalyzer, "term term");
AssertQueryEquals("drop AND (stop) AND roll", qpAnalyzer, "+drop +roll");
AssertQueryEquals("term +(stop) term", qpAnalyzer, "term term");
AssertQueryEquals("term -(stop) term", qpAnalyzer, "term term");
AssertQueryEquals("drop AND stop AND roll", qpAnalyzer, "+drop +roll");
AssertQueryEquals("term phrase term", qpAnalyzer, "term \"phrase1 phrase2\" term");
AssertQueryEquals("term AND NOT phrase term", qpAnalyzer, "+term -\"phrase1 phrase2\" term");
AssertQueryEquals("stop^3", qpAnalyzer, "");
AssertQueryEquals("stop", qpAnalyzer, "");
AssertQueryEquals("(stop)^3", qpAnalyzer, "");
AssertQueryEquals("((stop))^3", qpAnalyzer, "");
AssertQueryEquals("(stop^3)", qpAnalyzer, "");
AssertQueryEquals("((stop)^3)", qpAnalyzer, "");
AssertQueryEquals("(stop)", qpAnalyzer, "");
AssertQueryEquals("((stop))", qpAnalyzer, "");
Assert.IsTrue(GetQuery("term term term", qpAnalyzer) is BooleanQuery);
Assert.IsTrue(GetQuery("term +stop", qpAnalyzer) is TermQuery);
}