boolean (@NotNull MergeLineFragment fragment, @NotNull List<? extends CharSequence> sequences, @NotNull List<? extends LineOffsets> lineOffsets, @NotNull ComparisonPolicy policy, @NotNull ThreeSide side1, @NotNull ThreeSide side2) { int start1 = fragment.getStartLine(side1); int end1 = fragment.getEndLine(side1); int start2 = fragment.getStartLine(side2); int end2 = fragment.getEndLine(side2); if (end2 - start2 != end1 - start1) return false; CharSequence sequence1 = side1.select(sequences); CharSequence sequence2 = side2.select(sequences); LineOffsets offsets1 = side1.select(lineOffsets); LineOffsets offsets2 = side2.select(lineOffsets); for (int i = 0; i < end1 - start1; i++) { int line1 = start1 + i; int line2 = start2 + i; CharSequence content1 = getLinesContent(sequence1, offsets1, line1, line1 + 1); CharSequence content2 = getLinesContent(sequence2, offsets2, line2, line2 + 1); if (!ComparisonUtil.isEqualTexts(content1, content2, policy)) return false; } return true; }