### Question:
BiCollection { @SuppressWarnings("unchecked") public static <L, R> BiCollection<L, R> of() { return (BiCollection<L, R>) EMPTY; } private  BiCollection(Collection<? extends Entry<L, R>> underlying); @SuppressWarnings("unchecked") static BiCollection<L, R> of(); static BiCollection<L, R> of(L left, R right); static BiCollection<L, R> of(L left1, R right1, L left2, R right2); static BiCollection<L, R> of(L left1, R right1, L left2, R right2, L left3, R right3); static BiCollection<L, R> of(
      L left1, R right1, L left2, R right2, L left3, R right3, L left4, R right4); static BiCollection<L, R> of(
      L left1, R right1, L left2, R right2, L left3, R right3, L left4, R right4, L left5, R right5); static Collector<T, ?, BiCollection<L, R>> toBiCollection(
      Function<? super T, ? extends L> leftFunction,
      Function<? super T, ? extends R> rightFunction); int size(); BiStream<L, R> stream(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void empty() { assertKeyValues(BiCollection.of()).isEmpty(); assertThat(BiCollection.of()).isSameAs(BiCollection.of()); }
@Test public void onePair() { assertKeyValues(BiCollection.of(1, "one")) .containsExactlyEntriesIn(ImmutableListMultimap.of(1, "one")) .inOrder(); }
@Test public void twoDistinctPairs() { assertKeyValues(BiCollection.of(1, "one", 2, "two")) .containsExactlyEntriesIn(ImmutableListMultimap.of(1, "one", 2, "two")) .inOrder(); }
@Test public void twoPairsSameKey() { assertKeyValues(BiCollection.of(1, "1.1", 1, "1.2")) .containsExactlyEntriesIn(ImmutableListMultimap.of(1, "1.1", 1, "1.2")) .inOrder(); }
@Test public void threePairs() { assertKeyValues(BiCollection.of(1, "one", 2, "two", 3, "three")) .containsExactlyEntriesIn(ImmutableListMultimap.of(1, "one", 2, "two", 3, "three")) .inOrder(); }
@Test public void fourPairs() { assertKeyValues(BiCollection.of(1, "1", 2, "2", 3, "3", 4, "4")) .containsExactlyEntriesIn(ImmutableListMultimap.of(1, "1", 2, "2", 3, "3", 4, "4")) .inOrder(); }
@Test public void fivePairs() { assertKeyValues(BiCollection.of(1, "1", 2, "2", 3, "3", 4, "4", 5, "5")) .containsExactlyEntriesIn(ImmutableListMultimap.of(1, "1", 2, "2", 3, "3", 4, "4", 5, "5")) .inOrder(); }
@Test public void testBuilder_add() { assertKeyValues(BiStream.builder().add("one", 1).build().collect(BiCollection::toBiCollection)) .containsExactlyEntriesIn(ImmutableMultimap.of("one", 1)) .inOrder(); }