Sample
int-3574c9b8832f-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.916 | 0–1; higher is more readable |
| Scalabrino | 0.908 | 0–1; higher is more readable |
| Dorn | 0.824 | 0–1; higher is more readable |
| Mi | 0.576 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 16 | 0–20; mean of three runs |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs |
| BTTF | 0.696 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 31 | +12.4 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 353.108 | −11.653 |
| 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.822 | −7.233 |
Intercept 8.87 + feature contributions = 2.385 (log-odds).
Score = sigmoid(2.385) = 0.916.
| Score | 0.908 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.027 | +0.676 |
| 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. | 76.938 | +0.406 |
| 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. | 69.906 | +0.323 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 14 | −0.253 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 32 | −0.097 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 30.641 | +0.018 |
Intercept 0.07 + feature contributions = 1.543 (log-odds).
Score = sigmoid(1.543) = 0.824.
| Score | 0.576 |
|---|
| Score | 1 |
|---|
Run 1
The code is a well-structured interface with clear intent, concise length, flat nesting, and good reading flow. Javadoc comments provide useful context for implementors. However, parameter names like 'bui', 'http2', and 'con' are overly abbreviated, reducing clarity. 'http2' is especially misleading as it suggests HTTP/2 rather than an HTTP handler builder, and 'bui' is a confusing truncation of 'builder'. These naming choices slightly undermine readability despite the solid structure.
Run 2
The code is highly readable. It has a clear structure with a single interface and well-organized Javadoc comments. Nesting is minimal—only one method signature. The intent is explicit: define a contract for customizing WebTestClient.Builder. The code is concise and not unnecessarily long. Action granularity is appropriate; each element (package, imports, interface, method) is on its own logical line. Reading flow is natural, moving from package declaration to imports to the interface and its method. Minor deductions include slightly awkward parameter names ('bui', 'http2', 'con') that could be more descriptive, and the method signature wraps across lines in a way that slightly disrupts visual flow.
Run 3
The code is generally readable but has some issues. The interface has a clear purpose and good Javadoc documentation, but the parameter naming is poor: 'bui', 'http2', and 'con' are overly abbreviated and ambiguous, hurting clarity of intent. The method signature spans multiple lines with inconsistent indentation, disrupting reading flow. The documentation mixes implementation details across three different concerns (builder, handler, connector), making the contract harder to understand. Action granularity is fine since it's just an interface declaration, and nesting is non-existent. The code length is concise. Overall structure is logical, but the parameter names and formatting inconsistencies prevent higher readability.
Run 1
Code Structure: A well-organized interface with imports, interface documentation, and one method. Nesting: No nested logic; the declaration is easy to scan. Clarity of intent: Javadoc clearly describes the customization contract, and nullable annotations clarify parameter expectations. However, abbreviated names (bui, http2, con) obscure meaning, and the @param names do not match the actual parameters. The method name after also leaves its lifecycle context implicit. Code length: Concise, with documentation proportionate to the API. Action granularity: Each declaration is separate, and parameters are split across lines for readability; there are no compound actions. Reading flow: Natural top-to-bottom progression, slightly weakened by the missing blank line between the package declaration and imports and the documentation/signature mismatch.
Run 2
Code Structure: A logically organized interface with imports, class documentation, and a single method. Nesting: Minimal nesting makes it easy to scan. Clarity of intent: The documentation clearly describes the customization contract, but abbreviated parameter names (bui, http2, con) obscure meaning and do not match the @param names (builder, httpHandlerBuilder, connector). The method name after is also vague without its documentation. Code length: Concise, with useful rather than excessive documentation. Action granularity: The declaration is cleanly split across lines, with no bundled operations. Reading flow: Natural top-to-bottom organization, though the documentation-to-signature naming mismatch interrupts comprehension.
Run 3
Code Structure: A logically organized interface with imports, documentation, and one method. Nesting: Minimal nesting makes it easy to scan. Clarity of intent: Javadoc clearly describes customization responsibilities, but the method name 'after' is vague, and abbreviated parameters 'bui', 'http2', and 'con' obscure their roles. The @param names also mismatch the actual parameters, reducing documentation reliability. Code length: Concise and appropriate for a small contract, with useful documentation. Action granularity: The single declaration and separately listed parameters are easy to distinguish; there are no bundled operations. Reading flow: Natural top-to-bottom organization, though missing spacing after the package declaration and inconsistent documentation names slightly interrupt readability.