Sample

int-498f5b33d806-I03

Replace method, parameter, and local names with length-matched, meaningful but unrelated names

Matched original source

Lines31

Scores

MethodScoreScale
Posnett0.9150–1; higher is more readable
Scalabrino0.8940–1; higher is more readable
Dorn0.8250–1; higher is more readable
Mi0.5090–1; higher is more readable
LLOC1Logical lines; fewer is more readable
DeepSeek V4 Pro7.330–20; mean of three runs
GPT-6.1 Sol140–20; mean of three runs
BTTF0.6680–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; /** * Contract to encapsulate customizations to a {@link WebTestClient.Builder}. * Typically used by frameworks that wish to provide a shortcut for common * initialization. * * @author Rossen Stoyanchev * @since 5.0 * @see MockServerConfigurer */ public interface WebTestClientConfigurer { /** * Use methods on {@link WebTestClient.Builder} to modify test client * settings. For a mock WebFlux server, use {@link WebHttpHandlerBuilder} * to customize server configuration. For a MockMvc server, mutate the * {@link org.springframework.test.web.servlet.client.MockMvcHttpConnector} * and set it on {@link WebTestClient.Builder}. * @param builder the WebTestClient builder for test client changes * @param httpHandlerBuilder for mock WebFlux server settings * @param connector the connector in use */ void validateAddress(WebTestClient.Builder message, @Nullable WebHttpHandlerBuilder defaultMessage, @Nullable ClientHttpConnector nextBatch); }

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.824−7.237

Intercept 8.87 + feature contributions = 2.381 (log-odds).
Score = sigmoid(2.381) = 0.915.

Score0.894

Feature contributions

FeatureValueContribution
(log-odds)
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.027+0.683
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.969+0.405
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.821+0.021

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

Score0.509
Score1
Run 1

This code is nearly unreadable due to a severe mismatch between its Javadoc and its actual implementation. The interface is named WebTestClientConfigurer, suggesting a configuration contract, but its single method is named validateAddress with nonsensical parameter names ('message', 'defaultMessage', 'nextBatch') that have no semantic connection to the documented builder, handler builder, or connector. The Javadoc describes legitimate configuration actions, but the method signature has clearly been altered or corrupted, destroying clarity of intent. Action granularity is technically fine but irrelevant given the broken semantics. The reading flow is disorienting: a reader expects configuration methods but finds a validation method with incoherent types and names. While the package structure and comments are standard, the core code is misleading and non-functional as documented, making it effectively unreadable for its stated purpose.

Run 2

The code has severe readability issues. While the package structure and interface declaration are clear, the method signature uses misleading parameter names ('message', 'defaultMessage', 'nextBatch') that suggest messaging/batch processing rather than their actual types (WebTestClient.Builder, WebHttpHandlerBuilder, ClientHttpConnector). The Javadoc references parameter names ('builder', 'httpHandlerBuilder', 'connector') that do not match the actual parameter names, creating confusion. The method name 'validateAddress' appears unrelated to its documented purpose of customizing WebTestClient settings. Indentation is mostly consistent but the parameter alignment with tabs is non-standard. The class structure follows Spring conventions, but the mismatch between documentation and implementation, combined with the cryptic naming, makes the intent ambiguous and the code harder to maintain. The single-method interface keeps nesting flat and length concise, which helps slightly, but the semantic inconsistencies overshadow these positives.

Run 3

The code has good top-level structure with clear Javadoc explaining the interface's purpose and parameters. However, there are significant readability issues. The method signature `validateAddress` uses misleading parameter names (`message`, `defaultMessage`, `nextBatch`) that don't match their documented purposes (builder, httpHandlerBuilder, connector), creating ambiguity. The Javadoc describes the parameters correctly but the actual names contradict the documentation, confusing readers. The parameter ordering and naming appear to have been obfuscated or corrupted. Nesting is flat and action granularity is appropriate, but the mismatch between documentation and implementation severely impacts clarity of intent. The formatting is inconsistent with alignment. While the structure follows Spring conventions with proper package, imports, and annotations, the semantic disconnect between documented intent and actual code makes this harder to read than it should be.

Run 1

Code Structure: The package, imports, interface, and single method are logically organized. Nesting: There is no nested logic, making the declaration easy to scan. Clarity of intent: The interface documentation clearly describes configuration customization, but validateAddress suggests address validation instead. Parameter names message, defaultMessage, and nextBatch do not communicate their builder and connector roles, and the @param documentation refers to different names. These inconsistencies substantially weaken readability. Code length: The code is concise, with useful documentation rather than unnecessary implementation detail. Action granularity: There are no executable actions; the single declaration and separately listed parameters are easy to distinguish. Reading flow: The overall flow is natural, although the mismatch between documentation and signature interrupts understanding, and a blank line after the package declaration would improve formatting.

Run 2

Code Structure: A small interface with grouped imports and a single method is logically organized. Nesting: No nested control flow; the declaration is easy to scan. Clarity of intent: The interface documentation clearly describes client customization, but validateAddress suggests address validation instead. Parameter names message, defaultMessage, and nextBatch obscure their actual roles and conflict with the documented names builder, httpHandlerBuilder, and connector. Code length: Concise overall, with useful contextual documentation. Action granularity: The sole declaration is cleanly formatted, with parameters split across lines. Reading flow: Package, imports, documentation, and interface follow a natural Java layout, though missing separation after the package and the mismatch between documentation and signature interrupt comprehension.

Run 3

Code Structure: Clearly organized as a small interface with imports, interface documentation, and one method. Nesting: Minimal, with no nested control flow. Clarity of intent: Significantly weakened by inconsistencies: the documentation describes configuration, but the method is named validateAddress, and parameters message, defaultMessage, and nextBatch do not reflect their types or intended roles. The @param names also do not match the actual parameters. Code length: Concise, with generally useful documentation, though its inaccuracies undermine readability. Action granularity: A single method declaration, cleanly split across lines, with no combined actions. Reading flow: Natural top-to-bottom organization and consistent formatting, but the mismatch between documentation and signature interrupts understanding.