public void check(List<Invocation> invocations, InvocationMatcher wanted) {
List<Invocation> actualInvocations = finder.findInvocations(invocations, wanted);
if (actualInvocations.isEmpty()) {
Invocation similar = finder.findSimilarInvocation(invocations, wanted);
if (similar != null) {
ArgumentMatchingTool argumentMatchingTool = new ArgumentMatchingTool();
Integer[] indexesOfSuspiciousArgs = argumentMatchingTool.getSuspiciouslyNotMatchingArgsIndexes(wanted.getMatchers(), similar.getArguments());
SmartPrinter smartPrinter = new SmartPrinter(wanted, similar, indexesOfSuspiciousArgs);
reporter.argumentsAreDifferent(smartPrinter.getWanted(), smartPrinter.getActual(), similar.getLocation());
} else {
reporter.wantedButNotInvoked(wanted, invocations);
}
}
}