@Override
    public boolean retainAll(Collection<?> c) {
        // will throw UnsupportedOperationException
        return underlying().retainAll(c);
    }
@Test
    public void testDelegationOfUnsupportedFunctionRetainAll() {
        new PCollectionsTreeSetWrapperDelegationChecker<>()
                .defineMockConfigurationForUnsupportedFunction(mock -> mock.retainAll(eq(Collections.emptyList())))
                .defineWrapperUnsupportedFunctionInvocation(wrapper -> wrapper.retainAll(Collections.emptyList()))
                .doUnsupportedFunctionDelegationCheck();
    }