private static boolean containsIn(CloneGroup first, CloneGroup second) {
List<ClonePart> firstParts = first.getCloneParts();
List<ClonePart> secondParts = second.getCloneParts();
// TODO Godin: according to tests seems that if first part of condition is true, then second part can not be false
// if this can be proved, then second part can be removed
return SortedListsUtils.contains(secondParts, firstParts, new ContainsInComparator(second.getCloneUnitLength(), first.getCloneUnitLength()))
&& SortedListsUtils.contains(firstParts, secondParts, ContainsInComparator.RESOURCE_ID_COMPARATOR);
}