Sample
int-86cd6a4770de-I13
Lower every eligible classic and enhanced for loop to a while loop
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.578 | 0–1; higher is more readable |
| Dorn | 0.682 | 0–1; higher is more readable |
| Mi | 0.118 | 0–1; higher is more readable |
| LLOC | 7 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.554 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 1631.95 | −53.854 |
| Source linesThe number of non-empty source lines. | 47 | +18.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.791 | −7.187 |
Intercept 8.87 + feature contributions = -33.371 (log-odds).
Score = sigmoid(-33.371) = 0.
| Score | 0.578 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 122 | −1.502 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 121.958 | +1.163 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 44 | +0.785 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 48 | −0.663 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.069 | +0.268 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 46.837 | +0.245 |
Intercept 0.07 + feature contributions = 0.764 (log-odds).
Score = sigmoid(0.764) = 0.682.
| Score | 0.118 |
|---|
| Score | 7 |
|---|
Run 1
The code is well-structured and highly readable. It follows a clear logical organization with a focused class that extends a base class and overrides specific methods. Nesting is minimal, with only a single level of indentation within method bodies. Intent is clearly communicated through the class name, method names, and descriptive comments. The code is concise without being overly verbose, avoiding unnecessary boilerplate. Action granularity is appropriate, with each method performing a single logical operation. Reading flow is natural, presenting the constructor first followed by overridden methods in a logical order. The use of meaningful parameter names and proper formatting enhances readability. Minor deductions could be made for the slightly long constructor call spanning multiple lines and the unsupported operation exceptions, but these are appropriate for the implementation context.
Run 2
The code is well-structured and readable. It has a clear class-level Javadoc explaining its purpose, flat structure with no nested blocks, and concise methods with single responsibilities. Method names clearly express intent, and even unsupported operations are explicitly documented with meaningful exceptions. The use of descriptive parameter names and limited method parameters maintains readability. The code is compact without sacrificing clarity, demonstrating good action granularity and natural reading flow. Minor deductions stem from static method references that require domain knowledge and the absence of deeper method-level documentation for non-obvious logic.
Run 3
The code is well-structured with clear class hierarchy and consistent method organization. Imports are grouped logically, and the single-line class Javadoc is concise. Nesting is minimal with no deep conditional blocks. Method names clearly communicate intent (e.g., getWriteBatches, getIndexKeyValue), and the UnsupportedOperationException messages explicitly state the constraint. The getWriteBatches method delegates to an overload with clear argument comments, maintaining one primary action per line in the constructor call. However, minor readability reductions include the slightly long import list and the constructor call spanning multiple lines with complex arguments. Overall, the code is readable with good separation of concerns, predictable structure, and no unnecessary verbosity.
Run 1
Code Structure: A small, logically organized class with a constructor and clearly separated overrides. Nesting: No nested control flow, making navigation easy. Clarity of intent: Descriptive names, method references, and an explanatory comment communicate specialization for a non-indexed time-ordered store; however, repeated Long.MAX_VALUE arguments and the null parameter require superclass knowledge. Code length: Concise, with little unnecessary code; unsupported overrides are explicit but repetitive. Action granularity: Each method performs one clear action, and multiline arguments improve readability. Reading flow: Natural top-to-bottom progression with consistent method formatting, though missing spacing after the package declaration, ungrouped imports, and slightly uneven parameter alignment reduce polish.
Run 2
Code Structure: A small, logically organized class with a constructor and focused overrides. Nesting: No nested control flow; methods are flat and easy to scan. Clarity of intent: Descriptive class and method names, a class-level comment, and an inline explanation of the null argument clarify purpose. Unsupported-operation messages explicitly identify prohibited functionality, though superclass knowledge is needed to understand the full behavior. Code length: Concise, with little unnecessary code. Action granularity: Each statement performs one clear action; multiline calls separate arguments cleanly. Reading flow: Natural progression from initialization to overridden behavior, slightly weakened by inconsistent continuation indentation, tightly grouped imports, and unexplained Long.MAX_VALUE arguments.
Run 3
Code Structure: A small, cohesive class with clearly separated constructor and overridden methods. Nesting: Flat control flow with no nested conditionals or loops. Clarity of intent: Descriptive names, a class comment, and an explanation for the null argument make the purpose understandable; however, repeated Long.MAX_VALUE arguments and inherited behavior require external context. Code length: Concise, with little unnecessary code beyond required unsupported-operation overrides. Action granularity: Each statement performs one clear action, and multiline calls separate arguments cleanly. Reading flow: Natural progression from initialization to specialized operations, slightly weakened by inconsistent parameter indentation and tightly grouped imports.