@Override
    public Predicate negate() {
        return new GreaterLessPredicate(attributeName, value, !equal, !less);
    }
@Test
    public void negate_whenEqualsTrueAndLessFalse_thenReturnNewInstanceWithEqualsFalseAndLessTrue() {
        String attribute = "attribute";
        Comparable value = 1;

        GreaterLessPredicate original = new GreaterLessPredicate(attribute, value, true, false);
        GreaterLessPredicate negate = (GreaterLessPredicate) original.negate();

        assertThat(negate).isNotSameAs(original);
        assertThat(negate.attributeName).isEqualTo(attribute);
        assertThat(negate.equal).isFalse();
        assertThat(negate.less).isTrue();
    }