Sample

int-5b16332a45fe-I04

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

Matched original source

Lines27

Scores

MethodScoreScale
Posnett10–1; higher is more readable
Scalabrino0.8870–1; higher is more readable
Dorn0.8980–1; higher is more readable
Mi0.7620–1; higher is more readable
LLOC2Logical lines; fewer is more readable
DeepSeek V4 Pro14.330–20; mean of three runs
GPT-6.1 Sol170–20; mean of three runs
BTTF0.4440–1; higher is more readable

Views

Source code

package org.springframework.test.context; /** * {@code BootstrapContext} encapsulates the context in which the <em>Spring * TestContext Framework</em> is bootstrapped. * * @author Sam Brannen * @since 4.1 * @see BootstrapWith * @see TestContextBootstrapper */ public interface BootstrapContext { /** * Get the {@linkplain Class test class} for this bootstrap context. * @return the test class (never {@code null}) */ Class<?> a(); /** * Get the {@link CacheAwareContextLoaderDelegate} to use for transparent * interaction with the {@code ContextCache}. * @return the context loader delegate (never {@code null}) */ CacheAwareContextLoaderDelegate b(); }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.27+10.8
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.725−7.087
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.118.593−3.914

Intercept 8.87 + feature contributions = 8.67 (log-odds).
Score = sigmoid(8.67) = 1.

Score0.887

Feature contributions

FeatureValueContribution
(log-odds)
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.022+0.725
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.16+0.47
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+0.446
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.76+0.422
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.12−0.322
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.26.922−0.034

Intercept 0.07 + feature contributions = 2.175 (log-odds).
Score = sigmoid(2.175) = 0.898.

Score0.762
Score2
Run 1

The code has clear structure with a well-defined interface and Javadoc comments that explain purpose. It is flat, concise, and each method represents a single action. However, readability is significantly reduced by the meaningless method names 'a()' and 'b()', which obscure intent despite the descriptive comments. Renaming these methods to something like 'getTestClass()' and 'getContextLoaderDelegate()' would make the code self-documenting and improve reading flow, raising the score to 19 or 20.

Run 2

The code structure is clean and well-organized with clear Javadoc comments, showing good intent and flat nesting. However, the method names are completely generic and meaningless ('a()', 'b()'), severely obscuring purpose and making the code ambiguous. The reading flow is natural but the vague naming undermines clarity. Code length is concise, but brevity comes at the cost of expressiveness. Action granularity is fine. Overall, it is readable in structure but not in semantic meaning, hence a middling score.

Run 3

The code is a well-structured interface with clean Javadoc, clear packaging, and logical organization. It uses minimal nesting and has excellent readability in terms of formatting and documentation. However, the method names 'a()' and 'b()' severely undermine clarity of intent, making the code functionally inscrutable despite its otherwise clean structure. The methods are concise and one action per line is respected, but the reading flow is disrupted by having to cross-reference documentation to understand what the methods actually return. The code length is appropriate and not unnecessarily verbose. Overall, the structure and documentation are exemplary, but the abstraction of method names to single letters defeats the purpose of self-documenting code.

Run 1

Code Structure: A logically organized interface with two clearly separated method declarations. Nesting: Flat and easy to scan, with no nested logic. Clarity of intent: The interface name and Javadoc clearly explain its purpose and each method's contract, but the names a() and b() are opaque and force readers to consult documentation. Code length: Concise, with useful documentation rather than unnecessary implementation detail. Action granularity: Each declaration occupies its own line. Reading flow: Natural progression from package to interface documentation to documented methods; descriptive method names would improve readability further.

Run 2

Code Structure: A well-organized interface with two clearly separated method declarations. Nesting: No nested control flow or unnecessary structural depth. Clarity of intent: Interface-level and method-level documentation clearly explain the purpose and return contracts, but the names a() and b() are non-descriptive and force readers to consult comments. Code length: Short and appropriately concise, with useful documentation rather than unnecessary implementation detail. Action granularity: Each method declaration occupies its own line and expresses a single operation. Reading flow: Package declaration, interface documentation, and documented methods follow a natural Java layout. Descriptive method names would significantly improve readability.

Run 3

Code Structure: The interface is logically organized, with two clearly separated method declarations. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: The interface name and Javadoc explain its purpose and each method's contract, but the names a() and b() are uninformative and obscure intent at call sites. Code length: The code is concise, with proportionate documentation and no unnecessary implementation detail. Action granularity: Each declaration occupies its own line and represents a single responsibility. Reading flow: The package, interface documentation, and documented methods follow a natural order. Overall, readability is strong, but descriptive method names would substantially improve it.