Sample
int-02c0eaab7cf8-I02
Shorten method, parameter, and local names without collisions
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.67 | 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 exceptionally readable. It has a clear, logical structure: package declaration, imports, comprehensive Javadoc, annotations, and a single method. Nesting is nonexistent. The intent is unambiguous—defining a test timeout annotation. Code length is concise, with the verbose Javadoc being appropriate for a public API. Action granularity is ideal, with each annotation and declaration on its own line. Reading flow is natural, following standard Java conventions from imports to documentation to definition. Minor deductions only for the slightly long Javadoc block, which, while thorough, requires time to read.
Run 3
The code is exceptionally readable. It has a clear, logical structure with imports, Javadoc, annotations, and the interface declaration neatly separated. Nesting is nonexistent — the file is completely flat. Intent is unambiguous: this defines a test timeout annotation. The code is concise; the only executable element is the `millis()` method, while the extensive Javadoc is well-formatted and informative. Action granularity is perfect, with each annotation and declaration on its own line. Reading flow is natural, moving from package declaration through imports, documentation, metadata, and finally the interface body. Minor deductions only for the slightly long Javadoc block, but its clarity justifies the length.
Run 1
Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Essentially flat, with only the annotation body. Clarity of intent: The Timed name, millis() member, and detailed documentation clearly explain the timeout, its scope, and deprecation. Code length: Implementation is minimal; documentation is longer but provides useful context. Action granularity: Each import, annotation, and member declaration occupies its own line. Reading flow: Natural progression from purpose to configuration to the timeout parameter. Minor formatting issues, such as the missing blank line between the package declaration and imports, slightly reduce polish.
Run 2
Code Structure: Logically organized into imports, documentation, annotation metadata, and a single member. Nesting: Minimal, with no nested control flow. Clarity of intent: Timed and millis clearly communicate the purpose, while Javadoc explains timeout scope, usage, and deprecation. Code length: The implementation is concise; documentation is longer but relevant. Action granularity: Each import, annotation, and member 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 3
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 detailed Javadoc clearly explain purpose, timing scope, and deprecation. Code length: The implementation is concise; documentation is proportionate and useful, though slightly verbose. 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.