Sample
int-6a008ecaacbd-I03
Replace method, parameter, and local names with length-matched, meaningful but unrelated names
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 demonstrates excellent readability. The package declaration followed by necessary imports is logical, and Javadoc documentation thoroughly explains the annotation's purpose, behavior, and usage. Annotations (@Target, @Retention, @Documented, @Deprecated) are flat and well-organized. The interface declaration is concise, containing a single method without unnecessary complexity. Nesting is minimal, with only one level in Javadoc references. Intent is clear through self-documenting names like 'Timed' and 'millis'. Code length is appropriate for a metadata annotation with historical context. Action granularity follows Java conventions with one declaration per line. Reading flow is natural, moving from package context to documentation to annotation definition. Minor deduction for lengthy Javadoc that could be condensed in some sections, but it serves an educational purpose for framework users.
Run 3
The code is highly readable. It follows standard Java annotation declaration structure: package, imports, Javadoc, annotation definitions, and method. Nesting is nonexistent—everything is flat and straightforward. Intent is clearly stated in the Javadoc, explaining the annotation’s purpose, behavior, and deprecation. Code length is appropriate for a documented annotation; no unnecessary verbosity. Each line represents a single action or declaration (imports, annotations, method). Reading flow is natural: package first, then documentation, metadata annotations, and the required element. Minor point: the Javadoc is extensive, but justified for a public API.
Run 1
Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Essentially flat, with only the annotation declaration enclosing its member. Clarity of intent: The Timed name, millis() member, and detailed Javadoc clearly explain the timeout, its scope, and deprecation. Code length: The implementation is minimal; documentation is longer but relevant and useful. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: Follows conventional Java ordering and reads naturally from purpose to configuration to API. A blank line between the package declaration and imports would slightly improve visual separation.
Run 2
Code Structure: Logically organized into package, imports, documentation, annotation metadata, and a single member. Nesting: Minimal, with only the annotation declaration enclosing millis(). Clarity of intent: Timed and millis() clearly express the purpose, while Javadoc explains timeout behavior, scope, and deprecation. Code length: The implementation is concise; documentation is longer but provides useful context rather than unnecessary repetition. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: Natural top-to-bottom progression makes the code easy to scan. Minor formatting improvements, such as a blank line after the package declaration and removing the extra blank line before the closing brace, would improve consistency.
Run 3
Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Minimal, with only the interface body. Clarity of intent: Timed and millis clearly convey purpose, while Javadoc explains timeout scope, usage, and deprecation. Code length: The implementation is concise; documentation is extensive but relevant, though the member description is slightly repetitive. 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 improve visual separation.