Sample
int-dc8cd675ef36-I09
Select one of ten low-readability unrelated code templates per class
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. It follows standard package/import organization, has clear Javadoc with useful context and deprecation guidance, and uses annotations concisely. The structure is logical, with no deep nesting. Each element serves a single purpose, and the method signature is minimal and explicit. Minor deductions: the large Javadoc block slightly increases length, but it provides necessary context. Overall, clarity and flow are excellent.
Run 3
This is an exemplary annotation definition. The code structure is logical with imports, comprehensive Javadoc, metadata annotations, and the interface declaration clearly separated. Nesting is minimal—there are no nested control structures. Intent is unmistakable: every element, from the @Target to the @Deprecated annotation, clearly communicates the purpose and lifecycle of the Timed annotation. The code is concise; no unnecessary methods or fields exist beyond the required millis() attribute. Action granularity is excellent, with each annotation and the method declaration on its own line. Reading flow is natural: package declaration, imports, detailed documentation, annotations, then the core element. The Javadoc is particularly strong, explaining use cases, interactions, and deprecation reasons thoroughly.
Run 1
Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Minimal, with no nested control flow. Clarity of intent: The Timed name, millis() member, and thorough Javadoc clearly explain the timeout, included lifecycle operations, and deprecation. Code length: The implementation is concise; documentation is longer but provides useful context. Action granularity: Each import, annotation, and declaration occupies its own line, making individual elements easy to identify. Reading flow: Natural top-to-bottom progression from purpose to configuration to the timeout value. A blank line between the package declaration and imports would slightly improve visual separation.
Run 2
Code Structure: Standard Java organization cleanly separates imports, documentation, annotation metadata, and the declaration. Nesting: Essentially flat, with only one member inside the annotation. Clarity of intent: The Timed name, millis() member, and detailed Javadoc clearly explain the timeout behavior, scope, and deprecation. Code length: Implementation is minimal; 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: The progression from purpose and usage details to metadata and the time-limit member is natural. Minor formatting improvements, such as a blank line after the package declaration and removing the extra blank line before the closing brace, would make presentation slightly cleaner.
Run 3
Code Structure: Clean organization separates imports, documentation, annotation metadata, and the single member. Nesting: Essentially flat, with only the annotation declaration enclosing millis(). Clarity of intent: Timed and millis() clearly communicate the purpose, while Javadoc explains timeout scope, supported usage, and deprecation. Code length: Implementation is minimal; 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: Natural progression from package and dependencies to purpose, configuration, and timeout value. A blank line between the package declaration and imports would slightly improve visual separation.