Sample
int-97a4efac6139-I11
Split eligible integer literals into pairs of short-named intermediate variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.511 | 0–1; higher is more readable |
| Dorn | 0.356 | 0–1; higher is more readable |
| Mi | 0.281 | 0–1; higher is more readable |
| LLOC | 14 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 17.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.618 | 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. | 2531.532 | −83.541 |
| Source linesThe number of non-empty source lines. | 79 | +31.6 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.158 | −7.737 |
Intercept 8.87 + feature contributions = -50.807 (log-odds).
Score = sigmoid(-50.807) = 0.
| Score | 0.511 |
|---|
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. | 169.988 | −3.535 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 170 | +1.938 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 80 | −1.796 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 61 | +1.373 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 78.924 | +0.693 |
| 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.07 | +0.265 |
Intercept 0.07 + feature contributions = -0.593 (log-odds).
Score = sigmoid(-0.593) = 0.356.
| Score | 0.281 |
|---|
| Score | 14 |
|---|
Run 1
The code is well-structured and highly readable. It has a clear class hierarchy, logical organization with constructors and overridden methods, and minimal nesting. Each method has a single, clear purpose, and the actions are concise—one primary operation per line. The use of Javadoc comments and meaningful method names (e.g., canDecode, decode) enhances clarity of intent. The code length is appropriate, avoiding unnecessary verbosity while maintaining completeness. Reading flow is natural: the constructors lead to the overridden methods, each returning or throwing clear exceptions. Minor deductions include slightly long import statements and a single-line method that could be more readable if split, but overall the code is highly maintainable and understandable.
Run 2
The code is highly readable. It has a clear class structure with logical organization: constants, fields, constructors, and overridden methods are grouped sensibly. Nesting is minimal—only a try-finally block exists, keeping logic flat. Intent is explicit through descriptive method names, Javadoc, and clear exception messages. The code is concise without being cryptic; constructors and overrides are straightforward. Each action is on its own line, improving clarity. Reading flow is natural: class declaration, constants, constructors, then method overrides in logical order. Only minor deductions: the long package/import block is inherent to Java, and the `decode` method signature names like `hints` are standard but slightly vague.
Run 3
The code demonstrates clear structure with logical organization and separation of concerns. Each method has a single responsibility and is properly documented with Javadoc. The nesting is minimal, with only one try-finally block in the decode method. Intent is explicit through descriptive method names and clear constructor overloads. The code is concise and avoids unnecessary verbosity. Action granularity is well-maintained with one operation per line. Reading flow is natural, following a logical progression from class declaration through constructors to method implementations. Minor deductions for the somewhat long method signature in the streaming decode method and the slightly dense constructor delegation pattern.
Run 1
Code Structure: Logically organized into constants, state, constructors, and decoding methods, with helpful documentation. Nesting: Minimal; the only control structure is a straightforward try/finally for buffer cleanup. Clarity of intent: Descriptive names and explicit documentation clearly explain JSON conversion and unsupported stream decoding. Code length: Concise implementation with proportionate documentation, though long method signatures slightly reduce readability. Action granularity: Statements generally perform one action per line; the nested reader creation within fromJson modestly compresses multiple operations. Reading flow: Natural progression from configuration to capability checks and decoding, with consistent formatting overall. Ungrouped imports and lengthy signatures are minor presentation weaknesses.
Run 2
Code Structure: Logically organized into constants, state, constructors, and decoder overrides, with clear separation of responsibilities. Nesting: Minimal; the only block nesting is a straightforward try/finally for buffer cleanup. Clarity of intent: Descriptive names and useful Javadoc explain JSON decoding and the lack of streaming support. Code length: Concise, with little unnecessary implementation code; documentation adds useful context. Action granularity: Statements generally perform one action each, although the decoding expression combines stream access, reader construction, type resolution, and parsing. Reading flow: Natural top-to-bottom progression and consistent formatting make the class easy to follow. Very long method signatures and tightly packed imports slightly reduce scanability.
Run 3
Code Structure: Logically organized into constants, state, constructors, and decoder overrides. Nesting: Minimal; the only control structure is a straightforward try/finally. Clarity of intent: Descriptive names and Javadoc clearly explain JSON decoding and the unsupported streaming operation, though character-sequence exclusion is unexplained. Code length: Concise implementation with useful documentation and little redundancy. Action granularity: Statements generally perform one action per line, although reader creation, stream access, and deserialization are combined in one expression. Reading flow: Natural progression and consistent formatting make the class easy to follow; long method signatures and tightly packed imports slightly reduce scanability.