Sample
int-ebdaab422ddb-I13
Lower every eligible classic and enhanced for loop to a while loop
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.993 | 0–1; higher is more readable |
| Dorn | 0.687 | 0–1; higher is more readable |
| Mi | 0.471 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.686 | 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. | 45 | +18 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 445 | −14.685 |
| 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.832 | −7.247 |
Intercept 8.87 + feature contributions = 4.938 (log-odds).
Score = sigmoid(4.938) = 0.993.
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.028 | +0.667 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 88.957 | +0.631 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 46 | −0.592 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 44.933 | +0.218 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 18 | −0.115 |
| 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. | 88.935 | −0.102 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 18 | +0.008 |
Intercept 0.07 + feature contributions = 0.786 (log-odds).
Score = sigmoid(0.786) = 0.687.
| Score | 0.471 |
|---|
| Score | 1 |
|---|
Run 1
The code demonstrates excellent readability. The package and imports are logically ordered. Javadoc is thorough yet clearly formatted with paragraph breaks and links. Annotations like @Target and @Retention are placed cleanly above the interface declaration. The single method 'millis()' is documented concisely, and the code is flat—no nesting or complex conditionals. Structure is minimal and purposeful, reflecting the nature of a simple annotation definition. Names are self-explanatory. While concise, the deprecation note is slightly long, but overall the code is very clear and easy to scan.
Run 2
The code is highly readable. Structure is excellent: imports are cleanly separated, Javadoc is comprehensive and well-formatted, and annotations are logically grouped. Nesting is non-existent, which is appropriate for an annotation declaration. Intent is explicit through clear naming ('Timed', 'millis') and thorough documentation explaining purpose, behavior, and deprecation context. Code length is appropriate: concise implementation with rich documentation serving a public API. Action granularity is perfect—each annotation and method declaration occupies its own line. Reading flow is natural: package declaration, imports, documentation, metadata annotations, then the annotation definition with its single element. The only minor deduction is the slight verbosity of the Javadoc, but this is justified for a public framework API.
Run 3
The code is highly readable. It has a clear, logical structure with a standard package declaration, imports, and a well-organized annotation definition. Nesting is non-existent, keeping the code flat and straightforward. The intent is unambiguous: defining a deprecated @Timed annotation with a single millis() attribute. Javadoc thoroughly explains usage, deprecation, and related classes. Code length is concise yet sufficiently documented. Action granularity is appropriate—each import, annotation, and method declaration is on its own line. Reading flow is natural, progressing from metadata through Javadoc to the definition. Minor deductions: the deprecation message is slightly verbose, and imports span many lines, but this is idiomatic Java and does not impair clarity.
Run 1
Code Structure: Logically organized into package, imports, documentation, annotation metadata, and a single member. Nesting: Minimal, with only the annotation body. Clarity of intent: Timed and millis() clearly express the purpose, while documentation explains timeout scope, supported usage, and deprecation. Code length: Implementation is concise; the longer documentation provides useful context rather than unnecessary complexity. Action granularity: Each import, annotation, and declaration occupies its own line. Reading flow: Natural top-to-bottom progression with consistent formatting. A blank line between the package declaration and imports would slightly improve visual separation.
Run 2
Code Structure: Imports, documentation, annotation metadata, and the declaration are logically organized. Nesting: Minimal nesting makes the code easy to scan. Clarity of intent: Timed and millis(), supported by detailed Javadoc, clearly communicate the execution-time constraint, units, scope, and deprecation. Code length: The implementation is concise; documentation is longer but provides useful context rather than unnecessary complexity. Action granularity: Each import, metadata annotation, and member declaration occupies its own line. Reading flow: The progression from purpose and usage details to metadata and the single member is natural. A blank line between the package declaration and imports would slightly improve visual separation.
Run 3
Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Essentially flat, with only the interface body. Clarity of intent: The Timed name, millis() member, and detailed Javadoc clearly explain the timeout behavior, scope, and deprecation. Code length: The implementation is minimal; documentation is longer but provides useful context. Action granularity: Each import, metadata annotation, and member declaration occupies its own line. Reading flow: Natural top-to-bottom progression with consistent formatting. Minor drawbacks are the missing blank line after the package declaration and slightly wordy member documentation.