Sample
int-be0d63c02eea-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.546 | 0–1; higher is more readable |
| Dorn | 0.471 | 0–1; higher is more readable |
| Mi | 0.477 | 0–1; higher is more readable |
| LLOC | 25 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 13.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 14 | 0–20; mean of three runs |
| BTTF | 0.433 | 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. | 2430.444 | −80.205 |
| Source linesThe number of non-empty source lines. | 69 | +27.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.02 | −7.529 |
Intercept 8.87 + feature contributions = -51.264 (log-odds).
Score = sigmoid(-51.264) = 0.
| Score | 0.546 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 70 | −1.442 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 60 | +1.338 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 60 | −0.956 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 94.586 | +0.722 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 68.845 | +0.552 |
| 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. | 95.971 | −0.4 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.097 | −0.001 |
Intercept 0.07 + feature contributions = -0.117 (log-odds).
Score = sigmoid(-0.117) = 0.471.
| Score | 0.477 |
|---|
| Score | 25 |
|---|
Run 1
The code is generally well-structured with a clear purpose and consistent formatting. However, readability is hampered by non-standard method names ('com', 'nulls', 'nulls2', 'rev', 'read', 'to') which obscure intent. These abbreviated names make the code ambiguous without additional context. The class has deep generics and type annotations that add complexity but are necessary for the domain. Nesting is minimal and the code is concise, but method names reduce clarity of intent. The existing TODO comments indicate unresolved type-safety concerns, which further impact understanding. While the code follows a logical structure and maintains flat nesting, clarity of intent suffers due to naming conventions and suppressed warnings with unclear explanations.
Run 2
The code demonstrates a moderate level of readability. The structure is logical with clear separation of methods, but there are several issues that reduce clarity. The method names 'com', 'nulls', 'nulls2', 'rev', 'read', and 'to' are truncated and ambiguous, making it difficult to understand their purpose without context. The nesting is flat, which is good, and each line generally contains one action. However, repeated @SuppressWarnings annotations with unresolved TODO comments suggest incomplete documentation and unclear intent. The lazy initialization pattern is repeated twice (nullsFirst and nullsLast), adding minor redundancy. Type parameters and generic casting add complexity, though this is somewhat inherent to the domain. The code length is appropriate for what it does, but the abbreviated names severely impact reading flow and clarity of intent. The private constructor and singleton pattern are clear, and the serialization handling is straightforward.
Run 3
The code has clear organization with fields, methods, and constants logically grouped, and action granularity is mostly one action per line. However, readability suffers from several issues: method names are abbreviated to near-meaninglessness ('com', 'nulls', 'nulls2', 'rev', 'to', 'read'), which severely obscures intent. The nesting is flat, which is good, but generics-heavy signatures with nullability annotations create dense, hard-to-parse lines. The use of @SuppressWarnings with unresolved TODO comments adds ambiguity. The lazy initialization pattern is repeated verbatim in two methods, making the code slightly longer than necessary. Reading flow is disrupted by cryptic names and complex type declarations, forcing readers to infer meaning from context rather than self-documenting names.
Run 1
Code Structure: Fields, comparison logic, cached orderings, and singleton support are logically organized into small methods. Nesting: Very shallow, with only single-level conditionals. Clarity of intent: The class description and field names help, but abbreviated or ambiguous names such as com, lef, rig, nulls2, rev, read, and to obscure method purposes. Generic casts and dense annotations add cognitive load, while repeated unresolved TODO comments provide little clarification. Code length: Compact overall, with modest duplication between the null-ordering methods. Action granularity: Most lines perform one action, but chained assignments combine updating a cache with assigning a local variable. Reading flow: Consistent formatting and short methods support scanning, although cryptic naming, repetitive annotations, and compressed declarations interrupt otherwise natural flow.
Run 2
Code Structure: The class is logically organized around a singleton, comparison, cached null-handling orderings, and reversal. Nesting: Shallow conditionals keep the methods easy to follow. Clarity of intent: The class documentation and field names help, but abbreviated or ambiguous method names such as com, nulls2, rev, read, and to obscure their roles; lef, rig, and res2 also weaken clarity. Code length: Methods are concise, though repeated suppression annotations and TODO comments add noise. Action granularity: Most lines perform one action, but chained assignments combine cache initialization and local assignment. Reading flow: Method grouping is natural, but dense generic types, casts, and inline annotations interrupt scanning. Overall, the implementation is compact and structurally readable, with naming being the main weakness.
Run 3
Code Structure: The class is logically organized around a singleton ordering, with short methods and related cache fields grouped together. Nesting: Only single-level conditionals are used, making control flow easy to follow. Clarity of intent: The class documentation and field names help, but abbreviated method names such as com, nulls2, rev, read, and to obscure their purposes; lef, rig, and res2 further weaken clarity. Code length: The implementation is concise, although repeated suppression comments and similar caching methods add some noise. Action granularity: Most lines perform one action, but chained assignments combine cache updates and local assignments. Reading flow: Formatting and method boundaries support straightforward reading, while dense generic annotations, unexplained casts, and vague TODO comments interrupt it.