code: public static <E> ErrorMessageFactory shouldBeLenientEqualByIgnoring(Object actual, List<String> rejectedFields,
        List<Object> expectedValues, List<String> ignoredFields) {
      if (rejectedFields.size() == 1) {
        if (ignoredFields.isEmpty()) {
          return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields.get(0), expectedValues.get(0));
        } else {
          return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields.get(0), expectedValues.get(0), ignoredFields);
        }
      } else {
        if (ignoredFields.isEmpty()) {
          return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields, expectedValues);
        } else {
          return new ShouldBeLenientEqualByIgnoring(actual, rejectedFields, expectedValues, ignoredFields);
        }
      }
    }
docs: Creates a new </code>{@link ShouldBeLenientEqualByIgnoring}</code>.
  @param actual the actual value in the failed assertion.
  @param rejectedFields fields name not matching
  @param expectedValues fields value not matching
  @param ignoredFields fields which are not base the lenient equality
  @return the created {@code ErrorMessageFactory}.