Sample
int-88648bc48b0d-I06
Invert eligible conditions and exchange their branches
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.003 | 0–1; higher is more readable |
| Scalabrino | 0.753 | 0–1; higher is more readable |
| Dorn | 0.832 | 0–1; higher is more readable |
| Mi | 0.535 | 0–1; higher is more readable |
| LLOC | 8 | 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.829 | 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. | 629.447 | −20.772 |
| Source linesThe number of non-empty source lines. | 33 | +13.2 |
| 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.748 | −7.122 |
Intercept 8.87 + feature contributions = -5.824 (log-odds).
Score = sigmoid(-5.824) = 0.003.
| Score | 0.753 |
|---|
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. | 75.971 | +0.447 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 73.882 | +0.388 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.064 | +0.323 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 34 | −0.167 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 24 | +0.093 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 32.818 | +0.049 |
Intercept 0.07 + feature contributions = 1.6 (log-odds).
Score = sigmoid(1.6) = 0.832.
| Score | 0.535 |
|---|
| Score | 8 |
|---|
Run 1
The code is highly readable. It has a clear, single-purpose class with a flat structure and minimal nesting. The constructor and methods are straightforward, each performing one clear action. Javadoc comments adequately explain the class, constructor parameter, and return value. Naming is consistent with Netty conventions, and the code is concise without being overly terse. The encodeAsByteBuf method reads naturally, writing the protocol version then the auth scheme. Minor points: the class-level comment is slightly terse ('An socks init response') and could be more descriptive, but this does not meaningfully impact readability. Overall, it follows clean code principles effectively.
Run 2
The code is highly readable. It has a clear, logical structure: a single-purpose class with a constructor, a getter, and an encode method. Nesting is minimal—only inside the encodeAsByteBuf method, which is flat. Intent is evident from the class name, field name, and Javadoc comments, all of which use domain-specific terminology (Socks, authScheme, protocolVersion). Code length is concise; each method does exactly what its name suggests, with no unnecessary lines. Action granularity is appropriate: one statement per line, promoting clarity. Reading flow is natural—declarations, constructor, accessor, then behavior method—matching typical Java conventions. Overall, the code is easy to understand and maintain.
Run 3
The code is highly readable due to its clear structure, minimal nesting, and concise implementation. The class has a single responsibility, and the constructor validates input effectively. The encodeAsByteBuf method is straightforward, with one action per line. The Javadoc comments provide useful context, though they could be slightly more descriptive. Overall, the code demonstrates good practices and is easy to follow.
Run 1
Code Structure: The class is logically organized into a field, constructor, accessor, and encoding method. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: Descriptive class, field, and method names clearly communicate the response's purpose; constructor validation is explicit. Code length: The implementation is concise, though the accessor documentation is slightly repetitive. Action granularity: Each statement performs one clear action, including separate writes for protocol version and authentication scheme. Reading flow: The progression from initialization to access and serialization is natural. Minor polish issues include the grammatical error in the class comment and the lack of a blank line between the package declaration and imports.
Run 2
Code Structure: The class is logically organized into a field, constructor, accessor, and encoding method. Nesting: Methods are flat, with no conditional or loop nesting. Clarity of intent: Descriptive names, explicit types, null validation, and documentation make the response's purpose clear. Code length: The implementation is concise; accessor documentation is slightly repetitive. Action granularity: Each statement performs one clear action on its own line. Reading flow: The progression from initialization to access and serialization is natural, and encoding statements clearly show byte order. Minor presentation issues include the missing blank line between the package declaration and imports and the grammatical error in the class comment.
Run 3
Code Structure: The class is logically organized into a field, constructor, accessor, and encoding method. Nesting: Methods are flat, with no conditional or loop nesting. Clarity of intent: Descriptive names, explicit null validation, and documentation clearly communicate the response's purpose. Code length: The implementation is concise, though the accessor documentation is somewhat repetitive. Action granularity: Each statement performs a single clear action on its own line. Reading flow: The progression from initialization to access and serialization is natural; a blank line between the package declaration and imports would slightly improve formatting.