private String checkAreEqual(@NotNull List<? extends TemplateImpl> originalGroup, @NotNull List<? extends TemplateImpl> newGroup) {
    if (originalGroup.size() != newGroup.size()) return "different sizes";

    LiveTemplateContextsSnapshot allContexts = LiveTemplateContextService.getInstance().getSnapshot();

    for (int i = 0; i < newGroup.size(); i++) {
      TemplateImpl t1 = newGroup.get(i);
      TemplateImpl t2 = originalGroup.get(i);
      if (templatesDiffer(allContexts, t1, t2)) {
        if (isTest) {
          return "Templates differ: new=" + t1 + "; original=" + t2 +
                 "; equals=" + t1.equals(t2) +
                 "; vars=" + t1.getVariables().equals(t2.getVariables()) +
                 "; options=" + areOptionsEqual(t1, t2) +
                 "; diff=" + getDifferenceType(allContexts, getTemplateContext(t1), t2.getTemplateContext()) +
                 "\ncontext1=" + getTemplateContext(t1) +
                 "\ncontext2=" + getTemplateContext(t2);
        }
        return "templates differ";
      }
    }
    return null;
  }
private String checkAreEqual(@NotNull List<? extends TemplateImpl> originalGroup, @NotNull List<? extends TemplateImpl> newGroup)