@Test
  public void calculateDifference_EqualLists_ReturnsNoDiff() {
    List<Integer> list1 = new ArrayList<>();
    list1.add(1);
    list1.add(2);
    list1.add(3);
    List<Integer> list2 = new ArrayList<>();
    list2.add(1);
    list2.add(2);
    list2.add(3);

    boolean hasDiff =
        JdkDiffCreators.LIST.calculateDiff(list1, list2, JdkDiffCreators.CONTEXT).isPresent();

    Assert.assertFalse(hasDiff);
  }
  @Test
  public void calculateDifference_UnequalLists_ReturnsListDiff() {
    List<Integer> list1 = new ArrayList<>();
    list1.add(1);
    list1.add(2);
    list1.add(3);
    List<Integer> list2 = new ArrayList<>();
    list2.add(1);
    list2.add(5);

    @SuppressWarnings("unchecked")
    OrderedElementsDiff<Integer> diff =
        (OrderedElementsDiff<Integer>)
            JdkDiffCreators.LIST.calculateDiff(list1, list2, JdkDiffCreators.CONTEXT).get();

    Assert.assertEquals(diff.getElementDifferences().size(), 2);
    Assert.assertTrue(
        OrderedElementsDiffHelper.containsElementDifference(
            1, Optional.of(2), Optional.of(5), diff));
    Assert.assertTrue(
        OrderedElementsDiffHelper.containsElementDifference(
            2, Optional.of(3), Optional.empty(), diff));
  }