Sample

int-b02ee4d9da12-I01

Remove line comments, block comments, and Javadoc

Matched original source

Lines31

Scores

MethodScoreScale
Posnett0.9280–1; higher is more readable
Scalabrino0.5570–1; higher is more readable
Dorn0.7160–1; higher is more readable
Mi0.1950–1; higher is more readable
LLOC1Logical lines; fewer is more readable
DeepSeek V4 Pro170–20; mean of three runs
GPT-6.1 Sol16.330–20; mean of three runs
BTTF0.6380–1; higher is more readable

Views

Source code

package org.springframework.test.web.reactive.server; import org.jspecify.annotations.Nullable; import org.springframework.http.client.reactive.ClientHttpConnector; import org.springframework.web.server.adapter.WebHttpHandlerBuilder; public interface WebTestClientConfigurer { void afterConfigurerAdded(WebTestClient.Builder builder, @Nullable WebHttpHandlerBuilder httpHandlerBuilder, @Nullable ClientHttpConnector connector); }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.704−7.057

Intercept 8.87 + feature contributions = 2.561 (log-odds).
Score = sigmoid(2.561) = 0.928.

Score0.557

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
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.68+0.785
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Indentation frequencyHow rapidly indentation changes from line to line.31+0.335
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.075+0.215
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.783+0.02

Intercept 0.07 + feature contributions = 0.923 (log-odds).
Score = sigmoid(0.923) = 0.716.

Score0.195
Score1
Run 1

This is an extremely simple interface with a single method, making it highly readable. The code structure is clear and logical—just a package declaration, imports, and an interface with one method. Nesting is non-existent since there are no control flow structures. The intent is unambiguous: define a callback hook for customizing a WebTestClient builder, with optional HTTP handler builder and client connector parameters. The code length is minimal and appropriate, with no unnecessary verbosity. Action granularity is excellent—each declaration and annotation occupies its own line, including the alignment of parameters and annotations for clarity. Reading flow is natural: package, imports, interface, method signature. The only minor issue is the excessive blank lines (nine after imports and nine inside the interface), which slightly disrupts visual compactness but doesn't affect logical comprehension. Overall, this is exemplary code that leaves virtually no room for misinterpretation.

Run 2

The code is highly readable due to its clean structure and minimalism. It clearly defines a single-purpose interface with a well-named method, making intent unambiguous. Action granularity is excellent with one logical operation per line. Reading flow is natural, following standard Java conventions. Minor deductions are for excessive whitespace and an unused import, which slightly bloat length but do not harm clarity.

Run 3

The code is a short interface with a single method, which is simple and clear. However, excessive blank lines, especially after the opening brace and before the closing brace, disrupt readability. The method parameters are reasonably named, but the line break before @Nullable and ClientHttpConnector creates awkward formatting. The class structure is logical, and intent is clear, but the unnecessary vertical whitespace and inconsistent parameter alignment make the code feel untidy and less professional.

Run 1

Code Structure: The package, imports, interface, and single method are logically organized. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: Descriptive type and method names suggest a configuration lifecycle callback, though the lack of documentation leaves parameter roles and nullable behavior unclear. Code length: The substantive code is concise, but excessive blank lines unnecessarily expand it. Action granularity: The sole method declaration is cleanly split across lines, with no competing actions. Reading flow: Declaration order is natural, but large whitespace gaps interrupt continuity.

Run 2

Code Structure: The package, imports, interface, and single method follow conventional Java organization. Nesting: Minimal nesting makes the declaration easy to scan. Clarity of intent: Interface and method names suggest a configuration lifecycle callback, and descriptive parameter names and nullability annotations help, though missing documentation leaves its precise behavior unclear. Code length: The substantive code is concise, but excessive blank lines unnecessarily expand it. Action granularity: There are no executable actions; the single method declaration is cleanly split across lines. Reading flow: The declaration order and parameter formatting are natural, but large whitespace gaps interrupt the flow.

Run 3

Code Structure: The package, imports, interface, and single method are logically organized. Nesting: Minimal nesting makes the declaration easy to follow. Clarity of intent: Descriptive interface, method, and parameter names suggest a configuration callback, while nullable annotations clarify optional inputs; the callback's exact responsibilities are undocumented. Code length: The substantive code is concise, but excessive blank lines unnecessarily expand it. Action granularity: Each declaration is distinct, and the method parameters are clearly split across lines. Reading flow: The declaration follows a natural Java layout, but large whitespace gaps interrupt scanning.