Sample
int-644283ed17ba-I08
Select one of ten high-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 | 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 an annotation interface that demonstrates strong readability. Its structure logically separates imports, comprehensive documentation, meta-annotations, and the single method declaration. Nesting is flat, as expected for an annotation definition. The intent is crystal clear: to mark JUnit 4 tests with a timeout constraint. The code is appropriately concise, with no unnecessary elements. Action granularity is clean, with each annotation on its own line and the method signature isolated. Reading flow is natural, guiding from package declaration through imports and Javadoc to the interface body. The Javadoc is thorough, explaining usage, behavior, and deprecation context. Minor deductions arise from the deprecated nature of the code and the slightly verbose Javadoc, but these are inherent to documenting legacy framework components rather than unreadability issues.
Run 3
The code is highly readable with an excellent overall structure. It's a clean, flat annotation definition with clear imports, well-organized Javadoc, and concise meta-annotations. There is no problematic nesting, and the single method declaration clearly expresses intent. The action granularity is appropriate—each annotation and method is on its own line, promoting readability. The reading flow is natural: package declaration, imports, comprehensive documentation, then the annotation definition. The only minor deduction is due to the extensive Javadoc, which, while informative and well-structured, makes the file longer than the actual functional code. However, for a public API annotation slated for deprecation, this documentation is justified and valuable.
Run 1
Code Structure: Clearly organized into package, imports, documentation, annotation metadata, and a single member. Nesting: Essentially flat, with only the annotation body. Clarity of intent: Timed and millis() communicate the purpose, while Javadoc explains timeout scope, supported usage, and deprecation. Code length: The implementation is minimal; extensive documentation is relevant rather than unnecessary. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: Follows standard Java conventions and progresses naturally from context to declaration. A blank line between the package declaration and imports would slightly improve visual separation.
Run 2
Code Structure: Logically organized into package, imports, documentation, annotations, and a single member. Nesting: Minimal, with no nested control flow. Clarity of intent: Timed and millis(), supported by precise documentation, clearly express the execution-time limit, its scope, and deprecation status. Code length: The implementation is concise; the longer Javadoc adds useful context rather than unnecessary complexity. Action granularity: Each import, annotation, and declaration occupies its own line. Reading flow: Natural top-to-bottom progression makes the code easy to scan. A blank line between the package declaration and imports would slightly improve visual separation.
Run 3
Code Structure: Standard Java organization cleanly separates imports, documentation, annotation metadata, and the declaration. Nesting: Essentially flat, with only a single 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 rather than unnecessary complexity. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: The sequence naturally progresses from purpose and usage to metadata and the configurable value. Minor formatting issues, such as the missing blank line after the package declaration and the extra blank line before the closing brace, slightly reduce polish.