Sample
int-bcfaca7954d9-I09
Select one of ten low-readability unrelated code templates per class
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.916 | 0–1; higher is more readable |
| Scalabrino | 0.891 | 0–1; higher is more readable |
| Dorn | 0.825 | 0–1; higher is more readable |
| Mi | 0.508 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.732 | 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.818 | −7.226 |
Intercept 8.87 + feature contributions = 2.391 (log-odds).
Score = sigmoid(2.391) = 0.916.
| Score | 0.891 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.026 | +0.685 |
| 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. | 77 | +0.404 |
| 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.718 | +0.02 |
Intercept 0.07 + feature contributions = 1.55 (log-odds).
Score = sigmoid(1.55) = 0.825.
| Score | 0.508 |
|---|
| Score | 1 |
|---|
Run 1
The code is a well-structured Spring interface with clear intent. It has minimal nesting (none), appropriate length for its purpose, and each parameter is on its own line for readability. The Javadoc provides comprehensive context about how to use the interface, including references to related classes. The package structure and imports are standard and organized. The annotation @Nullable is used consistently. The method signature is clean and logically ordered. Points deducted only because the Javadoc could be slightly more concise, and there is a minor formatting inconsistency with the parameter continuation indentation. Overall, this is exemplary interface design that follows Java conventions perfectly.
Run 2
The code is an interface with a single, well-documented method, making it highly readable. Structure is logical: package, imports, Javadocs, and method signature. Nesting is non-existent (flat). Intent is crystal clear—a contract for customizing WebTestClient.Builder. Code length is concise and appropriate. Action granularity is fine; the single method call has three parameters, which is acceptable. Reading flow is natural: class-level Javadoc explains purpose, method Javadoc details parameters. Minor deduction for slightly dense Javadoc and multi-line parameter alignment, but overall excellent readability.
Run 3
The code is a well-structured Spring interface with clear Javadoc documentation. Organization is logical, with the package declaration followed by imports and a single interface definition. Nesting is minimal—only one method exists within the interface. Intent is clearly conveyed through descriptive naming and comprehensive documentation. Length is appropriate for an API contract; no unnecessary code exists. Action granularity is clean, with each parameter on its own line for readability. Reading flow is natural, following standard Java conventions for interface declarations and annotations. Minor deductions: the Javadoc could be slightly more concise, and nullable annotations could potentially be consolidated, but these are negligible.
Run 1
Code Structure: A logically organized interface with imports, interface documentation, and one documented method. Nesting: Minimal nesting, limited to the interface body. Clarity of intent: Descriptive names and Javadoc clearly explain the customization contract, parameter roles, and server-specific usage; nullable annotations make optional parameters explicit. Code length: Concise, with documentation proportionate to the API's purpose. Action granularity: One method declaration with parameters split cleanly across lines; no combined actions. Reading flow: Natural top-to-bottom progression from contract overview to method details. Minor formatting improvements, such as blank lines separating the package and imports, would improve visual readability.
Run 2
Code Structure: A logically organized interface with imports, interface documentation, and one method contract. Nesting: Minimal, with no nested control flow. Clarity of intent: Descriptive types, parameter names, nullability annotations, and Javadoc clearly explain the customization purpose and server-specific options. Code length: Concise; documentation adds useful context rather than unnecessary bulk. Action granularity: One declaration, with parameters split across lines for readability; no compound actions. Reading flow: Natural progression from interface purpose to method behavior and signature. Minor formatting issues, such as missing blank lines after the package declaration and before Javadoc parameter tags, slightly reduce visual separation.
Run 3
Code Structure: A single, focused interface with logically ordered imports and documentation. Nesting: Minimal nesting, limited to the interface body. Clarity of intent: Descriptive names and Javadoc clearly explain the customization contract, parameters, and supported server configurations; nullable annotations make optional inputs explicit. Code length: Concise, with documentation proportionate to the API's purpose. Action granularity: One method declaration, with parameters split across lines for readability and no combined actions. Reading flow: Natural progression from package and imports to interface documentation and method contract. Minor formatting improvements, such as a blank line after the package declaration, would improve visual separation.