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

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

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