Sample
Scalabrio70
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 71.9Δ 44.5 |
| Scalabrino | 0.388 | 0–1; higher is more readable | 34.7Δ 7.3 |
| Dorn | 0.152 | 0–1; higher is more readable | 20.6Δ 6.8 |
| Mi | 0.327 | 0–1; higher is more readable | 60.8Δ 33.4 |
| LLOC | 11 | Logical lines; fewer is more readable | 63.1Δ 35.7 |
| DeepSeek V4 Pro | 11.33 | 0–20; mean of three runs | 27.6Δ 0.3 |
| GPT-6.1 Sol | 16 | 0–20; mean of three runs | 34.7Δ 7.3 |
| BTTF | 0.443 | 0–1; higher is more readable | 22.6Δ 4.8 |
| Human | 3.22 | 1–5; original rating | 27.4 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
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. | 446.934 | −14.749 |
| 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.66 | −6.99 |
| Source linesThe number of non-empty source lines. | 11 | +4.4 |
Intercept 8.87 + feature contributions = -8.469 (log-odds).
Score = sigmoid(-8.469) = 0.
| Score | 0.388 |
|---|
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. | 109 | −0.952 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 11 | +0.647 |
| 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 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.133 | −0.347 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.855 | −0.272 |
Intercept 0.07 + feature contributions = -1.72 (log-odds).
Score = sigmoid(-1.72) = 0.152.
| Score | 0.327 |
|---|
| Score | 11 |
|---|
Run 1
The code is short but has poor readability due to dense conditional expressions. It uses nested ternaries that obscure intent and make the null-checking logic hard to follow at a glance. Action granularity is low because each line packs multiple comparisons and branches. Nesting is minimal, but the ternary chains create mental overload similar to deep nesting. Code structure is straightforward but not explicit. Reading flow is disrupted by the compressed `if` conditions. A more readable version would use helper methods or explicit null checks with clear variable names.
Run 2
The code is short and mostly readable, but it has several issues. The structure and intent are clear—it’s an equals method comparing two fields. However, the ternary conditions are dense and combine null-checking with equality in a single line, reducing clarity and increasing cognitive load. Nesting is minimal, which is good, but the action granularity suffers because each ternary packs multiple logical operations into one line. Reading flow is somewhat disrupted by the compact ternaries and awkward variable name 'cidDetailID'. The method repeats the same pattern for two fields, which could be extracted into a helper to improve clarity and reduce duplication. Overall, it is understandable but not as clean or readable as it could be.
Run 3
The code is reasonably structured but has several readability issues. It follows a predictable equals() pattern: identity check, type check, field-by-field comparison. Nesting is flat, which is good. However, the ternary conditions in the field comparisons pack multiple actions into single lines, making them harder to parse at a glance. The variable name cidDetailID is confusing since it holds an OuterKey, not a detail ID. Line length is moderate, but the ternary expressions reduce clarity compared to using Objects.equals(). Reading flow is natural for an equals method, but the dense conditionals interrupt comprehension. Score reflects acceptable structure with room for improvement in intent clarity, granularity, and naming.
Run 1
Code Structure: Logically organized identity, type, and field checks. Nesting: Flat guard clauses avoid deep nesting. Clarity of intent: The equality-checking purpose is clear, but the variable name cidDetailID is misleading for an OuterKey, and ternary null checks require extra interpretation. Code length: Concise without redundant logic. Action granularity: Each line performs one check, although inline returns compress conditions and control flow. Reading flow: Natural progression from quick checks to field comparisons, with long ternary expressions slightly reducing readability.
Run 2
Code Structure: Logically organized into identity, type, and field comparisons. Nesting: Flat, with early returns avoiding nested branches. Clarity of intent: Clearly implements equality, though the variable name cidDetailID is less intuitive than other, and the null-handling ternaries require extra interpretation. Code length: Concise without unnecessary repetition beyond the two field checks. Action granularity: Each line contains one conditional return or assignment, although inline returns compress conditions and actions together. Reading flow: Follows a conventional equals implementation, but long ternary conditions interrupt otherwise straightforward reading.
Run 3
Code Structure: Logically organized identity, type, and field checks. Nesting: Flat guard clauses avoid nested branches. Clarity of intent: The equality purpose is clear, but the variable name cidDetailID is misleading for an OuterKey, and ternary null checks require extra interpretation. Code length: Concise without unnecessary logic. Action granularity: Each line performs one check, although inline returns compress conditions and outcomes. Reading flow: Natural progression from quick checks to field comparisons, with long conditional expressions slightly interrupting readability.