public Builder<S> addAssertion(Predicate<S> test, Function<S, String> errorSupplier) {
            assertions.add(Pair.of(test, errorSupplier));
            return this;
        }
Adds an assertion to the matcher. It's expected to return true, otherwise the given
error message supplier is called with the shape that didn't match, and it's expected
to return an error message.

@param test Predicate to test the shape against.
@param errorSupplier Function used to create an error message.
@return Returns the builder.
smithy-model/src/test/java/software/amazon/smithy/model/ShapeMatcher.java