Sample
JetBrains/e51
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.004 | 0–1; higher is more readable | 81.4Δ 16.5 |
| Scalabrino | 0.645 | 0–1; higher is more readable | 47.5Δ 17.4 |
| Dorn | 0.824 | 0–1; higher is more readable | 100.0Δ 35.2 |
| Mi | 0.639 | 0–1; higher is more readable | 80.5Δ 15.7 |
| LLOC | 11 | Logical lines; fewer is more readable | 63.6Δ 1.3 |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs | 78.8Δ 14.0 |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs | 77.5Δ 12.7 |
| BTTF | 0.574 | 0–1; higher is more readable | 84.7Δ 19.9 |
| Human | 0.82 | 0–1; original rating | 64.8 |
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. | 482.18 | −15.912 |
| Source linesThe number of non-empty source lines. | 17 | +6.8 |
| 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.502 | −5.253 |
Intercept 8.87 + feature contributions = -5.495 (log-odds).
Score = sigmoid(-5.495) = 0.004.
| Score | 0.645 |
|---|
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. | 47 | +1.675 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 0 | −0.804 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 15.833 | −0.189 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 17 | −0.149 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.106 | −0.092 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 17 | +0.031 |
Intercept 0.07 + feature contributions = 1.542 (log-odds).
Score = sigmoid(1.542) = 0.824.
| Score | 0.639 |
|---|
| Score | 11 |
|---|
Run 1
The code is well-structured with a clear separation of concerns: main loop, initialization, inner computation, and output. Nesting is minimal and flat, making the logic easy to follow. Intent is obvious—compute Collatz stopping times for 1 to 1000. Code length is concise but not cryptic. Each line performs one action, which improves readability. The reading flow is natural: setup, computation, output. Minor improvements could include extracting the Collatz logic into a method and perhaps adding a comment, but overall it is highly readable.
Run 2
The code is well-structured, with a clear separation between the outer loop, inner while loop, and conditional logic. Nesting is minimal (two levels), and the intent is obvious: compute Collatz stopping times for numbers 1 to 1000. Each line generally performs one action, improving readability. The reading flow is natural—from loop initialization to condition check to output. Minor deductions: the stoppingTime increment could be combined with the assignment to reduce repetition, and the class could include a short comment explaining the Collatz conjecture for non-domain readers. Overall, the code is concise, modular, and easy to follow.
Run 3
The code is well-structured and highly readable. It has a clear logical organization: a main method with a loop, then an inner while loop for the Collatz sequence. Nesting is minimal, with only one level inside the while loop. Intent is clear—calculating stopping times for numbers 1 to 1000. Code length is concise and appropriate for the task. Action granularity is mostly one action per line, though the for-loop header packs three statements, which is standard and not a readability issue. Reading flow is natural, moving from initialization to iteration to output. Minor improvements could include a constant for the upper bound (1000) and perhaps a brief comment explaining the Collatz rule, but overall it's straightforward and easy to follow.
Run 1
Code Structure: Logically organized, with initialization, sequence computation, and output clearly separated. Nesting: The loop/while/if nesting is moderate and appropriate to the algorithm, though extracting a stopping-time method could simplify main. Clarity of intent: The class name and stoppingTime variable communicate the Collatz purpose; number and i are understandable, but output lacks the corresponding starting value. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs one clear action. Reading flow: Consistent indentation and straightforward control flow make execution easy to follow.
Run 2
Code Structure: Logically organized, with initialization, Collatz iteration, and output clearly separated. Nesting: Moderate nesting through the for loop, while loop, and conditional, but each level is straightforward and necessary. Clarity of intent: The class name and stoppingTime variable convey the purpose; naming i more descriptively and printing the starting number alongside its stopping time would improve clarity. Code length: Concise, with no unnecessary statements. Action granularity: Each statement performs a single action on its own line. Reading flow: Natural top-to-bottom progression with consistent indentation and familiar control structures. The hard-coded limit of 1000 and lack of explanatory context are minor readability weaknesses.
Run 3
Code Structure: Logically organized, with initialization, Collatz iteration, and output clearly separated. Nesting: Moderate nesting through a for loop, while loop, and if/else, but each level is straightforward. Clarity of intent: The class name and variables clearly communicate the calculation of stopping times; labeling each output with its starting number would improve interpretation. Code length: Concise, with no unnecessary code. Action granularity: Each statement performs one action, making changes easy to follow. Reading flow: Consistent indentation and a natural top-to-bottom sequence support readability. The unexplained upper bound of 1000 and lack of output labels are minor weaknesses.