code: public <A, E> UsingCorrespondence<A, E> comparingValuesUsing(
        Correspondence<? super A, ? super E> correspondence) {
      return new UsingCorrespondence<>(correspondence);
    }
docs: Starts a method chain for a check in which the actual values (i.e. the values of the {@link
  Multimap} under test) are compared to expected values using the given {@link Correspondence}.
  The actual values must be of type {@code A}, and the expected values must be of type {@code E}.
  The check is actually executed by continuing the method chain. For example:
  
  <pre>{@code
  assertThat(actualMultimap)
  .comparingValuesUsing(correspondence)
  .containsEntry(expectedKey, expectedValue);
  }</pre>
  
  where {@code actualMultimap} is a {@code Multimap<?, A>} (or, more generally, a {@code
  Multimap<?, ? extends A>}), {@code correspondence} is a {@code Correspondence<A, E>}, and
  {@code expectedValue} is an {@code E}.
  
  <p>Note that keys will always be compared with regular object equality ({@link Object#equals}).
  
  <p>Any of the methods on the returned object may throw {@link ClassCastException} if they
  encounter an actual value that is not of type {@code A}.