Sample

int-6496ea68b3f3-I04

Replace method, parameter, and local names with deterministic ProGuard-style short identifiers

Matched original source

Lines54

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Scalabrino0.8690–1; higher is more readable
Dorn0.8250–1; higher is more readable
Mi0.5750–1; higher is more readable
LLOC13Logical lines; fewer is more readable
DeepSeek V4 Pro6.670–20; mean of three runs
GPT-6.1 Sol14.330–20; mean of three runs
BTTF0.5970–1; higher is more readable

Views

Source code

package org.springframework.test.web.servlet.result; import org.hamcrest.Matcher; import org.springframework.test.web.servlet.ResultMatcher; import org.springframework.web.servlet.ModelAndView; import static org.hamcrest.MatcherAssert.assertThat; import static org.springframework.test.util.AssertionErrors.assertEquals; import static org.springframework.test.util.AssertionErrors.fail; /** * Factory for assertions on the selected view. * * <p>An instance of this class is typically accessed via * {@link MockMvcResultMatchers#view}. * * @author Rossen Stoyanchev * @since 3.2 */ public class ViewResultMatchers { /** * Protected constructor. * Use {@link MockMvcResultMatchers#view()}. */ protected ViewResultMatchers() { } /** * Assert the selected view name with the given Hamcrest {@link Matcher}. */ public ResultMatcher a(Matcher<? super String> a) { return result -> { ModelAndView b = result.getModelAndView(); if (b == null) { fail("No ModelAndView found"); } assertThat("View name", b.getViewName(), a); }; } /** * Assert the selected view name. */ public ResultMatcher a(String c) { return result -> { ModelAndView d = result.getModelAndView(); if (d == null) { fail("No ModelAndView found"); } assertEquals("View name", c, d.getViewName()); }; } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.1111.713−36.687
Source linesThe number of non-empty source lines.54+21.6
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.981−7.472

Intercept 8.87 + feature contributions = -13.689 (log-odds).
Score = sigmoid(-13.689) = 0.

Score0.869

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.55−0.911
Indentation frequencyHow rapidly indentation changes from line to line.39+0.612
Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names.73.982+0.532
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.72.6+0.367
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.53.653+0.34
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.082+0.142

Intercept 0.07 + feature contributions = 1.549 (log-odds).
Score = sigmoid(1.549) = 0.825.

Score0.575
Score13
Run 1

This code exhibits extremely poor readability due to meaningless naming (a, b, c, d, a()), which obscures the intent of both methods and variables. The code structure is somewhat modular, but the obfuscated identifiers negate any structural clarity. Nesting is shallow, which is good, but the action granularity is inconsistent—mixing null checks and assertions across multiple lines without clear grouping. The reading flow is disorganized because method names and parameters provide no semantic cues, forcing readers to parse comments and infer behavior. While the code is concise and avoids unnecessary length, the deliberate or accidental use of cryptic names makes it effectively unreadable. Clarity of intent suffers severely; only the comments and method signatures hint at the purpose. Overall, the code fails to communicate its logic efficiently, making maintenance and review unnecessarily challenging.

Run 2

The code has several significant readability issues. Method and variable names are meaningless: 'a' is used for both a Matcher parameter and a method name, 'b' and 'd' for ModelAndView, and 'c' for a String. This completely obscures the intent, despite the Javadoc explaining what the methods should do. The structure is otherwise logical and flat, with simple one-action-per-line statements, but the naming destroys clarity of intent and reading flow. The protected constructor with a comment is acceptable. The use of Hamcrest matchers and assertions is standard. However, the cryptic naming alone drops the score dramatically. The code length is concise, and nesting is minimal, but these positive aspects are nullified by the ambiguous identifiers.

Run 3

The code is structurally organized with clear package, imports, and documentation, but method and variable names are deliberately obfuscated ('a', 'b', 'c', 'd'), making the intent ambiguous. Nesting is low, with simple lambda bodies and no deep control flow. Code length is concise but at the cost of clarity. Action granularity is mostly one action per line, though some lines combine assertion calls with multiple arguments. Reading flow is natural at the class level but becomes confusing inside methods due to meaningless parameter names. The use of Hamcrest and Spring test utilities is appropriate, but the overall readability suffers primarily from poor naming choices that obscure purpose despite otherwise clean formatting.

Run 1

Code Structure: The class is logically organized into a constructor and two closely related assertion overloads. Nesting: Lambda bodies contain only one shallow conditional, making control flow easy to follow. Clarity of intent: Javadoc, assertion messages, and framework calls explain the purpose, but method name 'a' and variables 'a', 'b', 'c', and 'd' obscure meaning and distinguish the overloads poorly. Code length: The implementation is concise, with minor duplication of ModelAndView retrieval and null checking. Action granularity: Each statement performs a single clear action. Reading flow: Both methods follow the same natural retrieve-check-assert sequence, though compressed import formatting, extra blank lines, and cryptic identifiers reduce readability.

Run 2

Code Structure: The class is logically organized into a constructor and two related assertion overloads. Nesting: Lambda bodies contain only a single shallow conditional, keeping complexity low. Clarity of intent: Javadoc, assertion messages, and framework types explain the purpose, but method name 'a' and variables 'a', 'b', 'c', and 'd' obscure meaning and distinguishability. Code length: The implementation is concise; duplicated null checks are minor and reasonable for two short methods. Action granularity: Each statement performs one clear action, with no compressed multi-action lines. Reading flow: Both methods follow a natural retrieve-check-assert sequence, although missing spacing around import groups and arbitrary identifiers reduce scanability.

Run 3

Code Structure: The class is logically organized, with a constructor and two related assertion overloads. Nesting: Lambda bodies contain only a single conditional, keeping nesting shallow. Clarity of intent: Javadoc, assertion messages, and framework calls explain the purpose, but method name 'a' and variables 'a', 'b', 'c', and 'd' obscure meaning significantly. Code length: The implementation is concise; duplicated null checks are minor and understandable. Action granularity: Each statement performs one clear action, with no compressed multi-action lines. Reading flow: Both methods follow a natural retrieve-check-assert sequence, though poor naming and limited separation around imports reduce readability.