Sample
int-0a1d014413c9-I05
Rewrite eligible decimal integer literals in hexadecimal notation
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.529 | 0–1; higher is more readable |
| Dorn | 0.626 | 0–1; higher is more readable |
| Mi | 0.561 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 19 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.605 | 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. | 351.862 | −11.611 |
| Source linesThe number of non-empty source lines. | 25 | +10 |
| 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.761 | −7.141 |
Intercept 8.87 + feature contributions = 0.118 (log-odds).
Score = sigmoid(0.118) = 0.529.
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 91.462 | +0.671 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.04 | +0.551 |
| 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. | 99 | −0.528 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 26 | +0.116 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 24.9 | −0.062 |
Intercept 0.07 + feature contributions = 0.514 (log-odds).
Score = sigmoid(0.514) = 0.626.
| Score | 0.561 |
|---|
| Score | 1 |
|---|
Run 1
The code is highly readable. It has a clear, logical structure with imports at the top, followed by a comprehensive Javadoc explaining the annotation's purpose and constraints. The annotation definition is minimal and focused. Nesting is flat, with no unnecessary complexity. Clarity of intent is excellent, with clear documentation about parameter requirements and serial invocation behavior. The code is concise, containing no redundant elements. Action granularity is appropriate, with each annotation on its own line. Reading flow is natural, from imports to documentation to implementation. Minor deductions only for unused imports (Target, RetentionPolicy are used indirectly but ElementType is fully qualified).
Run 2
The code is highly readable. Its structure follows standard Java annotation declaration, with imports, Javadoc, and annotations logically ordered. Nesting is nonexistent. The Javadoc provides clear intent, explaining the annotation's purpose, constraints, and behavior. The code is concise, with each annotation on its own line and clear grouping. Reading flow is natural: metadata annotations precede the declaration. The only minor deduction is that the Javadoc could more explicitly mention thread-safety implications of @AllowConcurrentEvents, but this does not materially affect readability.
Run 3
This code is highly readable. It has a clear, logical structure: a single, well-documented annotation type. The nesting is completely flat, containing only top-level annotations. The intent is unambiguous, reinforced by a comprehensive Javadoc that explains usage constraints and behavior. The code is extremely concise—just a declaration with three meta-annotations. Each annotation is on its own line, demonstrating good action granularity. The reading flow is natural, moving from package declaration to imports, Javadoc, meta-annotations, and finally the declaration itself. Minor deductions could be made for the package-private nature of the annotation or the slightly long Javadoc paragraph, but these are negligible in context.
Run 1
Code Structure: Logically organized into package, imports, documentation, metadata, and annotation declaration; blank lines between sections would improve separation. Nesting: No nested logic, making the code easy to scan. Clarity of intent: The Subscribe name and detailed Javadoc clearly explain its purpose, parameter requirements, and concurrency behavior. Code length: Minimal implementation with proportionate documentation. Action granularity: Each import and metadata annotation occupies its own line; the empty declaration is appropriately compact. Reading flow: Natural top-to-bottom progression from context to behavior and declaration, with only minor spacing limitations.
Run 2
Code Structure: Clean organization of package, imports, documentation, metadata, and annotation declaration. Nesting: No nested logic; the empty annotation body is appropriate. Clarity of intent: The Subscribe name and detailed Javadoc clearly explain its purpose, parameter constraints, and concurrency behavior. Code length: Concise implementation with proportionate, useful documentation. Action granularity: Each import and annotation appears on its own line, making individual elements easy to identify. Reading flow: Natural progression from dependencies to documentation and declaration. A blank line after the package declaration and between imports and Javadoc would slightly improve visual separation.
Run 3
Code Structure: Logically organized into package, imports, documentation, annotation metadata, and declaration. Nesting: No nested logic; the annotation body is empty. Clarity of intent: The Subscribe name and Javadoc clearly explain its purpose, parameter requirements, and concurrency behavior. Code length: Minimal implementation with appropriately detailed documentation. Action granularity: Each import and annotation occupies its own line, with no bundled operations. Reading flow: Natural top-to-bottom progression; blank lines after the package declaration and before the imports would slightly improve visual separation.