public R apply(R record) {
        if (predicate == null || negate ^ predicate.test(record)) {
            return transformation.apply(record);
        }
        return record;
    }
@Test
    public void apply() {
        applyAndAssert(true, false, transformed);
        applyAndAssert(true, true, initial);
        applyAndAssert(false, false, initial);
        applyAndAssert(false, true, transformed);
    }