src/main/java/org/fest/assertions/internal/Lists.java
public void assertStartsWith(Description description, List<?> actual, Object[] sequence) {
    checkIsNotNullAndNotEmpty(sequence);
    assertNotNull(description, actual);
    int sequenceSize = sequence.length;
    if (actual.size() < sequenceSize) {
      throw actualDoesNotStartWithSequence(description, actual, sequence);
    }
    int i = 0;
    for (Object o : actual) {
      if (i >= sequenceSize) {
        break;
      }
      if (areEqual(o, sequence[i++])) {
        continue;
      }
      throw actualDoesNotStartWithSequence(description, actual, sequence);
    }
  }
public void assertStartsWith(Description description, List<?> actual, Object[] sequence) {
    checkIsNotNullAndNotEmpty(sequence);
    assertNotNull(description, actual);
    int sequenceSize = sequence.length;
    if (actual.size() < sequenceSize) {
      throw actualDoesNotStartWithSequence(description, actual, sequence);
    }
    int i = 0;
    for (Object o : actual) {
      if (i >= sequenceSize) {
        break;
      }
      if (areEqual(o, sequence[i++])) {
        continue;
      }
      throw actualDoesNotStartWithSequence(description, actual, sequence);
    }
  }
Asserts that the given {@code List} starts with the given sequence of objects, without any other objects between
them. Similar to <code>{@link #assertContainsSequence(Description, List, Object[])}</code>, but it also verifies
that the first element in the sequence is also the first element of the given {@code List}.

@param description contains information about the assertion.
@param actual      the given {@code List}.
@param sequence    the sequence of objects to look for.
@throws NullPointerException     if the given argument is {@code null}.
@throws IllegalArgumentException if the given argument is an empty array.
@throws AssertionError           if the given {@code List} is {@code null}.
@throws AssertionError           if the given {@code List} does not start with the given sequence of objects.