private void assertGeoBoundingBoxQuery(String query) throws IOException {
   QueryShardContext shardContext = createShardContext();
   Query parsedQuery = parseQuery(query).toQuery(shardContext);
   if (shardContext.indexVersionCreated().before(Version.V_2_2_0)) {
     LegacyInMemoryGeoBoundingBoxQuery filter = (LegacyInMemoryGeoBoundingBoxQuery) parsedQuery;
     assertThat(filter.fieldName(), equalTo(GEO_POINT_FIELD_NAME));
     assertThat(filter.topLeft().lat(), closeTo(40, 1E-5));
     assertThat(filter.topLeft().lon(), closeTo(-70, 1E-5));
     assertThat(filter.bottomRight().lat(), closeTo(30, 1E-5));
     assertThat(filter.bottomRight().lon(), closeTo(-80, 1E-5));
   } else if (shardContext.indexVersionCreated().before(Version.V_5_0_0_beta1)) {
     GeoPointInBBoxQuery q = (GeoPointInBBoxQuery) parsedQuery;
     assertThat(q.getField(), equalTo(GEO_POINT_FIELD_NAME));
     assertThat(q.getMaxLat(), closeTo(40, 1E-5));
     assertThat(q.getMinLon(), closeTo(-70, 1E-5));
     assertThat(q.getMinLat(), closeTo(30, 1E-5));
     assertThat(q.getMaxLon(), closeTo(-80, 1E-5));
   }
 }
 @Override
 protected void doAssertLuceneQuery(
     GeoDistanceRangeQueryBuilder queryBuilder, Query query, QueryShardContext context)
     throws IOException {
   Version version = context.indexVersionCreated();
   if (version.before(Version.V_2_2_0)) {
     assertLegacyQuery(queryBuilder, query);
   } else {
     assertGeoPointQuery(queryBuilder, query);
   }
 }
 @Override
 protected void doAssertLuceneQuery(
     GeoBoundingBoxQueryBuilder queryBuilder, Query query, SearchContext searchContext)
     throws IOException {
   QueryShardContext context = searchContext.getQueryShardContext();
   MappedFieldType fieldType = context.fieldMapper(queryBuilder.fieldName());
   if (fieldType == null) {
     assertTrue("Found no indexed geo query.", query instanceof MatchNoDocsQuery);
   } else {
     if (context.indexVersionCreated().before(Version.V_2_2_0)) {
       if (queryBuilder.type() == GeoExecType.INDEXED) {
         assertTrue("Found no indexed geo query.", query instanceof ConstantScoreQuery);
       } else {
         assertTrue(
             "Found no indexed geo query.", query instanceof LegacyInMemoryGeoBoundingBoxQuery);
       }
     } else if (context.indexVersionCreated().before(Version.V_5_0_0_beta1)) {
       assertTrue("Found no indexed geo query.", query instanceof GeoPointInBBoxQuery);
     } else {
       assertTrue("Found no indexed geo query.", query instanceof Query);
     }
   }
 }