### Question:
DifferenceFlux extends AbstractParametrizedFlux { @Nonnull public DifferenceFlux withColumns(@Nonnull final String[] columns) { Arguments.checkNotNull(columns, "Columns are required"); this.withPropertyValue("columns", columns); return this; } DifferenceFlux(@Nonnull final Flux source); @Nonnull DifferenceFlux withNonNegative(final boolean nonNegative); @Nonnull DifferenceFlux withColumns(@Nonnull final String[] columns); @Nonnull DifferenceFlux withColumns(@Nonnull final Collection<String> columns);  }### Answer:
@Test void differenceByProperty() { Flux flux = Flux .from("telegraf") .groupBy("_measurement") .difference() .withColumns(new String[]{"_value", "_oldValue"}); String expected = "from(bucket:\"telegraf\") |> group(columns: [\"_measurement\"]) |> difference(columns: [\"_value\", \"_oldValue\"])"; Assertions.assertThat(flux.toString()).isEqualToIgnoringWhitespace(expected); }