public virtual void TestSimple()
{
string[] fields = new string[]{"b", "t"};
MultiFieldQueryParser mfqp = new MultiFieldQueryParser(Util.Version.LUCENE_CURRENT, fields, new StandardAnalyzer(Util.Version.LUCENE_CURRENT));
Query q = mfqp.Parse("one");
Assert.AreEqual("b:one t:one", q.ToString());
q = mfqp.Parse("one two");
Assert.AreEqual("(b:one t:one) (b:two t:two)", q.ToString());
q = mfqp.Parse("+one +two");
Assert.AreEqual("+(b:one t:one) +(b:two t:two)", q.ToString());
q = mfqp.Parse("+one -two -three");
Assert.AreEqual("+(b:one t:one) -(b:two t:two) -(b:three t:three)", q.ToString());
q = mfqp.Parse("one^2 two");
Assert.AreEqual("((b:one t:one)^2.0) (b:two t:two)", q.ToString());
q = mfqp.Parse("one~ two");
Assert.AreEqual("(b:one~0.5 t:one~0.5) (b:two t:two)", q.ToString());
q = mfqp.Parse("one~0.8 two^2");
Assert.AreEqual("(b:one~0.8 t:one~0.8) ((b:two t:two)^2.0)", q.ToString());
q = mfqp.Parse("one* two*");
Assert.AreEqual("(b:one* t:one*) (b:two* t:two*)", q.ToString());
q = mfqp.Parse("[a TO c] two");
Assert.AreEqual("(b:[a TO c] t:[a TO c]) (b:two t:two)", q.ToString());
q = mfqp.Parse("w?ldcard");
Assert.AreEqual("b:w?ldcard t:w?ldcard", q.ToString());
q = mfqp.Parse("\"foo bar\"");
Assert.AreEqual("b:\"foo bar\" t:\"foo bar\"", q.ToString());
q = mfqp.Parse("\"aa bb cc\" \"dd ee\"");
Assert.AreEqual("(b:\"aa bb cc\" t:\"aa bb cc\") (b:\"dd ee\" t:\"dd ee\")", q.ToString());
q = mfqp.Parse("\"foo bar\"~4");
Assert.AreEqual("b:\"foo bar\"~4 t:\"foo bar\"~4", q.ToString());
// LUCENE-1213: MultiFieldQueryParser was ignoring slop when phrase had a field.
q = mfqp.Parse("b:\"foo bar\"~4");
Assert.AreEqual("b:\"foo bar\"~4", q.ToString());
// make sure that terms which have a field are not touched:
q = mfqp.Parse("one f:two");
Assert.AreEqual("(b:one t:one) f:two", q.ToString());
// AND mode:
mfqp.DefaultOperator = QueryParser.AND_OPERATOR;
q = mfqp.Parse("one two");
Assert.AreEqual("+(b:one t:one) +(b:two t:two)", q.ToString());
q = mfqp.Parse("\"aa bb cc\" \"dd ee\"");
Assert.AreEqual("+(b:\"aa bb cc\" t:\"aa bb cc\") +(b:\"dd ee\" t:\"dd ee\")", q.ToString());
}