code: public void assertContains(Description description, List<?> actual, Object value, Index index) {
      assertNotNull(description, actual);
      checkNotEmpty(description, actual);
      checkIndexValueIsValid(index, actual.size() - 1);
      Object actualElement = actual.get(index.value);
      if (!areEqual(actualElement, value)) {
        throw failures.failure(description, shouldContainAtIndex(actual, value, index, actual.get(index.value)));
      }
    }
docs: Asserts that the given {@code List} contains the given object at the given index.
  
  @param description contains information about the assertion.
  @param actual      the given {@code List}.
  @param value       the object to look for.
  @param index       the index where the object should be stored in the given {@code List}.
  @throws AssertionError            if the given {@code List} is {@code null} or empty.
  @throws NullPointerException      if the given {@code Index} is {@code null}.
  @throws IndexOutOfBoundsException if the value of the given {@code Index} is equal to or greater than the size of
  the given {@code List}.
  @throws AssertionError            if the given {@code List} does not contain the given object at the given index.