Sample
int-9fa8101fd2a9-I11
Split eligible integer literals into pairs of short-named intermediate variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.006 | 0–1; higher is more readable |
| Scalabrino | 0.761 | 0–1; higher is more readable |
| Dorn | 0.842 | 0–1; higher is more readable |
| Mi | 0.699 | 0–1; higher is more readable |
| LLOC | 7 | 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.7 | 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. | 553.182 | −18.255 |
| Source linesThe number of non-empty source lines. | 28 | +11.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.646 | −6.97 |
Intercept 8.87 + feature contributions = -5.155 (log-odds).
Score = sigmoid(-5.155) = 0.006.
| Score | 0.761 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76.966 | +0.437 |
| 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. | 76.897 | +0.408 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.072 | +0.244 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 25 | +0.128 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 27.705 | −0.023 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 29 | +0.01 |
Intercept 0.07 + feature contributions = 1.672 (log-odds).
Score = sigmoid(1.672) = 0.842.
| Score | 0.699 |
|---|
| Score | 7 |
|---|
Run 1
The code is highly readable. It has a clear, logical structure with imports, class declaration, and concise method overrides. Nesting is minimal, with no nested blocks or conditionals. Each method expresses a single intent: reading data, flushing, and handling exceptions. Code length is appropriate for an echo handler — no unnecessary boilerplate. Action granularity is well-maintained, with one action per line (e.g., `ctx.write(msg)` and `cause.printStackTrace()`). Reading flow is natural: the class is named clearly, methods are ordered logically, and the Javadoc comment explains the class purpose. Minor deduction for the inline comment in `exceptionCaught` being slightly redundant, but overall the code is nearly exemplary.
Run 2
The code is highly readable with clear structure and intent. It follows standard Netty handler patterns with minimal nesting (none beyond class/method level) and excellent action granularity. Each method performs a single logical operation - reading, flushing, or handling exceptions. The code is concise without being cryptic, and the comment in exceptionCaught clarifies the action. The import order could be slightly improved with a blank line after the package statement, but this is minor. Overall, the reading flow is natural and the purpose is immediately clear.
Run 3
This code is highly readable. The structure is clear and logical, with the class properly extending ChannelInboundHandlerAdapter. Nesting is minimal, limited to the class and method scopes. Intent is explicit through clear method names and a helpful Javadoc comment. The code is concise without being obscure, containing only necessary overrides. Each method consists of a single action per line, maintaining good action granularity. Reading flow is natural, with methods ordered in a typical lifecycle sequence. The only minor deductions are the lack of a newline between the package and import statements and the slightly abrupt comment in exceptionCaught, though both are negligible.
Run 1
Code Structure: Well-organized class with separate methods for reading, flushing, and exception handling. Nesting: Flat methods with no nested control flow. Clarity of intent: The class name, documentation, and overridden callbacks clearly communicate an SCTP echo handler's purpose. Code length: Concise, with no unnecessary logic or repetition. Action granularity: Each statement performs one action on its own line. Reading flow: Methods follow a natural lifecycle sequence, and consistent formatting makes scanning easy. A blank line between the package declaration and imports would slightly improve visual separation.
Run 2
Code Structure: Logically organized into three focused event-handler methods. Nesting: Flat, with no conditionals or nested control flow. Clarity of intent: The class name, documentation, and overridden methods clearly communicate an SCTP echo server handler; write-versus-flush behavior assumes some Netty familiarity. Code length: Concise, with no unnecessary logic or boilerplate beyond required declarations. Action granularity: Each statement performs one action on its own line. Reading flow: Natural progression from receiving data to flushing writes and handling exceptions. A blank line between the package declaration and imports would slightly improve visual separation.
Run 3
Code Structure: Clearly organized into three focused event-handler methods. Nesting: Flat, with no conditional or loop nesting. Clarity of intent: The class name, documentation, and standard callback names clearly convey an SCTP echo handler; the exception comment explains connection closure. Code length: Concise, with no unnecessary implementation or abstraction. Action granularity: Each statement performs one action on its own line. Reading flow: Natural progression from receiving data to flushing writes and handling exceptions. Minor readability limitations are the abbreviated parameter names and reliance on Netty knowledge to understand deferred flushing and lifecycle callbacks.