public TolerantFloatComparison isNotWithin(float tolerance) {
    return new TolerantFloatComparison() {
      @Override
      public void of(float expected) {
        Float actual = FloatSubject.this.actual;
        checkNotNull(
            actual, "actual value cannot be null. tolerance=%s expected=%s", tolerance, expected);
        checkTolerance(tolerance);

        if (!notEqualWithinTolerance(actual, expected, tolerance)) {
          failWithoutActual(
              fact("expected not to be", floatToString(expected)),
              butWas(),
              fact("within tolerance", floatToString(tolerance)));
        }
      }
    };
  }
@Test
  public void isNotWithinZeroTolerance() {
    float max = Float.MAX_VALUE;
    assertThatIsNotWithinFails(max, 0.0f, max);
    assertThatIsNotWithinFails(NEARLY_MAX, 0.0f, NEARLY_MAX);
    assertThat(max).isNotWithin(0.0f).of(NEARLY_MAX);
    assertThat(NEARLY_MAX).isNotWithin(0.0f).of(max);

    float min = Float.MIN_VALUE;
    assertThatIsNotWithinFails(min, 0.0f, min);
    assertThatIsNotWithinFails(JUST_OVER_MIN, 0.0f, JUST_OVER_MIN);
    assertThat(min).isNotWithin(0.0f).of(JUST_OVER_MIN);
    assertThat(JUST_OVER_MIN).isNotWithin(0.0f).of(min);
  }