@Override
  @Deprecated
  public void isNotIn(@Nullable Iterable<?> iterable) {
    checkNotNull(iterable);
    if (Iterables.contains(iterable, actual)) {
      failWithActual("expected not to be any of", iterable);
    }
    List<@Nullable Object> nonIterables = new ArrayList<>();
    for (Object element : iterable) {
      if (!(element instanceof Iterable<?>)) {
        nonIterables.add(element);
      }
    }
    if (!nonIterables.isEmpty()) {
      failWithoutActual(
          simpleFact(
              lenientFormat(
                  "The actual value is an Iterable, and you've written a test that compares it to "
                      + "some objects that are not Iterables. Did you instead mean to check "
                      + "whether its *contents* match any of the *contents* of the given values? "
                      + "If so, call containsNoneOf(...)/containsNoneIn(...) instead. "
                      + "Non-iterables: %s",
                  nonIterables)));
    }
  }
@Test
  @SuppressWarnings("deprecation") // test of a mistaken call
  public void isNotIn() {
    ImmutableList<String> actual = ImmutableList.of("a");

    assertThat(actual).isNotIn(ImmutableList.of(ImmutableList.of("b"), ImmutableList.of("c")));

    expectFailureWhenTestingThat(actual).isNotIn(ImmutableList.of("a", "b"));
    assertThat(expectFailure.getFailure())
        .hasMessageThat()
        .isEqualTo(
            "The actual value is an Iterable, and you've written a test that compares it to some "
                + "objects that are not Iterables. Did you instead mean to check whether its "
                + "*contents* match any of the *contents* of the given values? If so, call "
                + "containsNoneOf(...)/containsNoneIn(...) instead. Non-iterables: [a, b]");
  }