FieldQuery fq = new FieldQuery( query, true, true );
Map<String, QueryPhraseMap> map = fq.rootMaps;
assertEquals( 1, map.size() );
assertNull( map.get( null ) );
assertNotNull( map.get( F ) );
QueryPhraseMap qpm = map.get( F );
assertEquals( 1, qpm.subMap.size() );
// "a a a"
assertNotNull( qpm.subMap.get( "a" ) );
QueryPhraseMap qpm2 = qpm.subMap.get( "a" );
assertFalse( qpm2.terminal );
assertEquals( 1, qpm2.subMap.size() );
assertNotNull( qpm2.subMap.get( "a" ) );
QueryPhraseMap qpm3 = qpm2.subMap.get( "a" );
assertFalse( qpm3.terminal );
assertEquals( 1, qpm3.subMap.size() );
assertNotNull( qpm3.subMap.get( "a" ) );
QueryPhraseMap qpm4 = qpm3.subMap.get( "a" );
assertTrue( qpm4.terminal );
// "a a a a"
assertEquals( 1, qpm4.subMap.size() );
assertNotNull( qpm4.subMap.get( "a" ) );
QueryPhraseMap qpm5 = qpm4.subMap.get( "a" );
assertTrue( qpm5.terminal );
// "a a a a a"
assertEquals( 1, qpm5.subMap.size() );
assertNotNull( qpm5.subMap.get( "a" ) );
QueryPhraseMap qpm6 = qpm5.subMap.get( "a" );
assertTrue( qpm6.terminal );
// "a a a a a a"
assertEquals( 1, qpm6.subMap.size() );
assertNotNull( qpm6.subMap.get( "a" ) );
QueryPhraseMap qpm7 = qpm6.subMap.get( "a" );
assertTrue( qpm7.terminal );
}