public static void verify(@NotNull DiffIterable iterable) { if (!isVerifyEnabled()) return; verify(iterable.iterateChanges()); verify(iterable.iterateUnchanged()); verifyFullCover(iterable); }
@NotNull public static List<DiffFragment> convertIntoFragments(@NotNull DiffIterable changes) { final List<DiffFragment> fragments = new ArrayList<DiffFragment>(); for (Range ch : changes.iterateChanges()) { fragments.add(new DiffFragmentImpl(ch.start1, ch.end1, ch.start2, ch.end2)); } return fragments; }
public static void verifyFair(@NotNull DiffIterable iterable) { if (!isVerifyEnabled()) return; verify(iterable); for (Range range : iterable.iterateUnchanged()) { assert range.end1 - range.start1 == range.end2 - range.start2; } }
private static void verifyFullCover(@NotNull DiffIterable iterable) { int last1 = 0; int last2 = 0; Boolean lastEquals = null; for (Pair<Range, Boolean> pair : iterateAll(iterable)) { Range range = pair.first; Boolean equal = pair.second; assert last1 == range.start1; assert last2 == range.start2; assert !Comparing.equal(lastEquals, equal); last1 = range.end1; last2 = range.end2; lastEquals = equal; } assert last1 == iterable.getLength1(); assert last2 == iterable.getLength2(); }