public void testPrePost() {
   SpanNotQueryBuilder builder =
       new SpanNotQueryBuilder(
           new SpanTermQueryBuilder("name1", "value1"),
           new SpanTermQueryBuilder("name2", "value2"));
   assertThat(builder.pre(), equalTo(0));
   assertThat(builder.post(), equalTo(0));
   builder.pre(-4).post(-4);
   assertThat(builder.pre(), equalTo(0));
   assertThat(builder.post(), equalTo(0));
   builder.pre(1).post(2);
   assertThat(builder.pre(), equalTo(1));
   assertThat(builder.post(), equalTo(2));
 }
 public void testDist() {
   SpanNotQueryBuilder builder =
       new SpanNotQueryBuilder(
           new SpanTermQueryBuilder("name1", "value1"),
           new SpanTermQueryBuilder("name2", "value2"));
   assertThat(builder.pre(), equalTo(0));
   assertThat(builder.post(), equalTo(0));
   builder.dist(-4);
   assertThat(builder.pre(), equalTo(0));
   assertThat(builder.post(), equalTo(0));
   builder.dist(4);
   assertThat(builder.pre(), equalTo(4));
   assertThat(builder.post(), equalTo(4));
 }
 @Override
 protected SpanNotQueryBuilder doCreateTestQueryBuilder() {
   SpanTermQueryBuilder[] spanTermQueries =
       new SpanTermQueryBuilderTests().createSpanTermQueryBuilders(2);
   SpanNotQueryBuilder queryBuilder =
       new SpanNotQueryBuilder(spanTermQueries[0], spanTermQueries[1]);
   if (randomBoolean()) {
     // also test negative values, they should implicitly be changed to 0
     queryBuilder.dist(randomIntBetween(-2, 10));
   } else {
     if (randomBoolean()) {
       queryBuilder.pre(randomIntBetween(-2, 10));
     }
     if (randomBoolean()) {
       queryBuilder.post(randomIntBetween(-2, 10));
     }
   }
   return queryBuilder;
 }
 /**
  * test correct parsing of `dist` parameter, this should create builder with pre/post set to same
  * value
  */
 public void testParseDist() throws IOException {
   XContentBuilder builder = XContentFactory.jsonBuilder();
   builder.startObject();
   builder.startObject(SpanNotQueryBuilder.NAME);
   builder.field("exclude");
   spanTermQuery("description", "jumped").toXContent(builder, null);
   builder.field("include");
   spanNearQuery(QueryBuilders.spanTermQuery("description", "quick"), 1)
       .clause(QueryBuilders.spanTermQuery("description", "fox"))
       .toXContent(builder, null);
   builder.field("dist", 3);
   builder.endObject();
   builder.endObject();
   SpanNotQueryBuilder query = (SpanNotQueryBuilder) parseQuery(builder.string());
   assertThat(query.pre(), equalTo(3));
   assertThat(query.post(), equalTo(3));
   assertNotNull(query.includeQuery());
   assertNotNull(query.excludeQuery());
 }