Sample
int-15aafc7798c3-I04
Replace method, parameter, and local names with deterministic ProGuard-style short identifiers
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.999 | 0–1; higher is more readable |
| Scalabrino | 0.666 | 0–1; higher is more readable |
| Dorn | 0.234 | 0–1; higher is more readable |
| Mi | 0.012 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 12 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14.33 | 0–20; mean of three runs |
| BTTF | 0.553 | 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. | 22 | +8.8 |
| 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.752 | −7.128 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 106.198 | −3.505 |
Intercept 8.87 + feature contributions = 7.038 (log-odds).
Score = sigmoid(7.038) = 0.999.
| Score | 0.666 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 220 | −5.653 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 220 | +2.745 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.013 | +0.816 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 8 | −0.46 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 21.914 | −0.104 |
Intercept 0.07 + feature contributions = -1.187 (log-odds).
Score = sigmoid(-1.187) = 0.234.
| Score | 0.012 |
|---|
| Score | 1 |
|---|
Run 1
The code has a clear purpose and well-written documentation explaining the interface's role. However, readability is severely undermined by poor naming: the method 'a' and parameter 'a' convey no meaning about their purpose, making the code ambiguous and unusable without external documentation. The structure is logical (a simple interface), nesting is irrelevant, and length is concise, but clarity of intent and reading flow suffer due to the cryptic names. Action granularity is fine. Overall, the documentation helps but cannot compensate for the uninformative identifiers.
Run 2
The code is a single-method interface with misleading naming. The method 'a' and parameter 'a' provide no indication of intent, violating clarity of intent and reading flow. The Javadoc is well-written and explains the interface's purpose, but the actual code does not reflect the documented behavior due to obfuscated naming. Structure is minimal but logical, nesting is non-existent, length is concise. However, the action granularity and code structure are undermined by the cryptic method signature, which makes the interface difficult to understand without relying entirely on the comments.
Run 3
The code is well-structured and readable overall. It has a clear Javadoc that explains the interface's purpose and provides helpful context, making intent easy to understand. The interface is minimal with a single method, keeping code length concise and nesting flat (no nesting at all). However, the parameter and method names ('a', 'a') are extremely poor and obscure the meaning, significantly hurting readability. The action granularity is fine since the interface declares only one method. Reading flow is natural in the documentation, but the actual code forces a reader to guess the purpose of the method and its argument. Renaming 'a' and 'a' to something like 'format(SockJsFrame frame)' would dramatically improve clarity.
Run 1
Code Structure: The package declaration, interface documentation, and single method are logically organized. Nesting: No nested logic makes the code easy to scan. Clarity of intent: The interface name and Javadoc clearly explain transport-specific frame formatting, but the method and parameter names, both 'a', obscure the operation and input. Code length: The implementation is minimal; the documentation is useful, though its long link is cumbersome. Action granularity: The single method declaration occupies its own line. Reading flow: Conventional Java layout supports natural reading, but the opaque method signature breaks the connection between the documented purpose and the API.
Run 2
Code Structure: The package, interface documentation, and single method are logically organized. Nesting: There is no nested logic, making the declaration easy to scan. Clarity of intent: The interface name and Javadoc clearly explain transport-specific frame formatting, but the method name 'a' and parameter name 'a' obscure the operation and input. Code length: The implementation is minimal; the documentation is useful, though the long fully qualified link adds visual clutter. Action granularity: The single method declaration occupies its own line, with no combined actions. Reading flow: The code follows a conventional Java layout, but the transition from descriptive documentation to an ambiguously named method weakens readability.
Run 3
Code Structure: A single-purpose interface is logically organized. Nesting: There is no nesting, making the declaration easy to scan. Clarity of intent: The interface name and Javadoc explain transport-specific frame formatting, but the method and parameter names, both 'a', obscure the operation and its input. Code length: The implementation is minimal; the documentation is useful but relatively lengthy, with an unwieldy link. Action granularity: The sole method declaration occupies one line without combining unrelated actions. Reading flow: Conventional package, documentation, and interface ordering provides a natural flow, though the ambiguous method signature weakens the connection between the documented purpose and the API.