Sample
JetBrains/e64
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 35.6Δ 14.4 |
| Scalabrino | 0.382 | 0–1; higher is more readable | 20.3Δ 0.8 |
| Dorn | 0.604 | 0–1; higher is more readable | 72.9Δ 51.7 |
| Mi | 0.584 | 0–1; higher is more readable | 68.6Δ 47.5 |
| LLOC | 26 | Logical lines; fewer is more readable | 7.2Δ 14.0 |
| DeepSeek V4 Pro | 12.33 | 0–20; mean of three runs | 19.1Δ 2.1 |
| GPT-6.1 Sol | 14 | 0–20; mean of three runs | 10.2Δ 11.0 |
| BTTF | 0.465 | 0–1; higher is more readable | 50.0Δ 28.8 |
| Human | 0.53 | 0–1; original rating | 21.2 |
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. | 1051.795 | −34.709 |
| Source linesThe number of non-empty source lines. | 40 | +16 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 3.361 | −5.042 |
Intercept 8.87 + feature contributions = -14.881 (log-odds).
Score = sigmoid(-14.881) = 0.
| Score | 0.382 |
|---|
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. | 55.9 | +1.298 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 40 | +0.646 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 40 | −0.497 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 37 | −0.274 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.112 | −0.15 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 38.737 | +0.132 |
Intercept 0.07 + feature contributions = 0.42 (log-odds).
Score = sigmoid(0.42) = 0.604.
| Score | 0.584 |
|---|
| Score | 26 |
|---|
Run 1
The code follows a straightforward, logical structure with clear loops and variable names like `sequence`, `zerosCount`, and `currentIndex`, making the intent partly understandable. However, the algorithm's purpose is not immediately apparent from the code alone, and the nested while loops increase complexity. The second inner while loop contains multiple actions per line, such as assignment and increment in `sequence[currentIndex++] = zerosCount;`, which slightly reduces readability. Nesting is moderate, but the repeated scanning of the sequence feels inefficient and harder to reason about. The final output loop is clear, but overall the code lacks explanatory comments or a more descriptive class/method name to clarify the inventory sequence generation.
Run 2
The code is logically organized and mostly flat, making it somewhat readable. However, intent is unclear due to magic numbers and lack of comments. Variable naming like `currentNumber` and `zerosCount` helps, but the nested while loop and scattered for-loops reduce clarity. Action granularity is reasonable, but the second while loop's condition and use of `currentIndex` inside the inner for-loop are confusing, adding complexity. Code length is moderate but could be shortened with helper methods or more meaningful structure. Reading flow is disrupted by the break logic and reuse of `currentIndex` across loops without clear boundaries.
Run 3
The code implements an inventory sequence generator and has a fairly simple, sequential structure, with no deep nesting (maximum two levels). However, its intent is ambiguous: variable and class names are generic, and there are no comments explaining the algorithm. The clustered inner while-loop and repeated array scanning make it hard to understand at a glance. Lines are moderately long but not overly complex, typically performing one action, though some combine assignment and arithmetic (e.g., `sequence[currentIndex++] = zerosCount`). The reading flow is mostly linear, but the lack of separation between phases (generation vs output) and helper methods reduces clarity. Overall, the logic is not tangled, but poor naming and missing context significantly hurt readability.
Run 1
Code Structure: Initialization, sequence generation, and output are logically ordered, but generation is monolithic and repeats counting logic. Nesting: Nested while loops, for loops, and conditionals require tracking several levels. Clarity of intent: Descriptive names help, but the inventory-sequence rules and stopping conditions are not explained; repeated literal 1000 values obscure the configurable size. Code length: Reasonably concise, though a counting helper could reduce duplication. Action granularity: Most lines perform one action, but sequence[currentIndex++] combines assignment with index advancement. Reading flow: Formatting and sequential phases support readability, while the inner break and evolving index make the generation process harder to follow.
Run 2
Code Structure: Initialization, sequence generation, and output are logically ordered, but all logic resides in main and counting logic is duplicated. Nesting: Nested while loops, for loops, and conditionals create moderately deep nesting. Clarity of intent: Descriptive variable names help, but the sequence-generation rules are not explained, and repeated literal 1000 values obscure the configurable size. Code length: Reasonably concise, though extracting a counting helper could reduce repetition. Action granularity: Most lines perform one action, but sequence[currentIndex++] combines assignment and index advancement. Reading flow: Execution progresses naturally from setup to generation to printing, although the inner loop's break and special handling of zero require careful tracing.
Run 3
Code Structure: Initialization, sequence generation, and output are logically ordered, but all logic resides in main and counting logic is duplicated. Nesting: Several nested while, for, and if blocks make the generation algorithm harder to follow. Clarity of intent: Variable names are descriptive, but the inventory-sequence rules are not explained, and the repeated literal 1000 should be a named constant or sequence.length. Code length: Reasonably concise, though a counting helper could reduce duplication. Action granularity: Most lines perform one action, but sequence[currentIndex++] combines assignment with index advancement. Reading flow: Consistent indentation and blank lines support reading, while the inner break and implicit transition between counting rounds require closer attention.