static ValidationEvent parseValidationEvent(String event, String fileName) {
        Matcher matcher = EVENT_PATTERN.matcher(event);
        if (!matcher.find()) {
            throw new IllegalArgumentException(format("Invalid validation event in file `%s`, the following event did "
                    + "not match the expected regular expression `%s`: %s",
                    fileName,
                    EVENT_PATTERN.pattern(),
                    event));
        }

        // Construct a dummy source location since we don't validate it.
        SourceLocation location = new SourceLocation("/", 0, 0);

        ValidationEvent.Builder builder = ValidationEvent.builder()
                .severity(Severity.fromString(matcher.group("severity")).get())
                .sourceLocation(location)
                .id(matcher.group("id"))
                .message(matcher.group("message"));

        // A shape ID of "-" means no shape.
        if (!matcher.group("shape").equals("-")) {
            builder.shapeId(ShapeId.from(matcher.group("shape")));
        }

        return builder.build();
    }
Creates a test case result from a list of model diff events.

<p>The diff events encountered are compared against the expected
validation events. An actual event (A) is considered a match with an
expected event (E) if A and E target the same shape, have the same
severity, the eventId of A contains the eventId of E, and the message
of E starts with the suppression reason or message of A.

@param actualEvents List of actual diff events.
@return Returns the created test case result.
smithy-diff/src/main/java/software/amazon/smithy/diff/testrunner/SmithyDiffTestCase.java