@CanIgnoreReturnValue
  public final Ordered containsExactly(@Nullable Object @Nullable ... varargs) {
    List<@Nullable Object> expected =
        (varargs == null) ? newArrayList((@Nullable Object) null) : asList(varargs);
    return containsExactlyElementsIn(
        expected, varargs != null && varargs.length == 1 && varargs[0] instanceof Iterable);
  }
@Test
  public void iterableContainsExactlyWithDuplicatesMissingAndExtraItemsWithNewlineFailure() {
    expectFailureWhenTestingThat(asList("a\nb", "a\nb")).containsExactly("foo\nbar", "foo\nbar");
    assertFailureKeys(
        "missing (2)",
        "#1 [2 copies]",
        "",
        "unexpected (2)",
        "#1 [2 copies]",
        "---",
        "expected",
        "but was");
    assertFailureValueIndexed("#1 [2 copies]", 0, "foo\nbar");
    assertFailureValueIndexed("#1 [2 copies]", 1, "a\nb");
  }