Sample
JetBrains/i52
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.002 | 0–1; higher is more readable | 77.1Δ 39.8 |
| Scalabrino | 0.75 | 0–1; higher is more readable | 62.7Δ 25.4 |
| Dorn | 0.586 | 0–1; higher is more readable | 65.3Δ 28.0 |
| Mi | 0.597 | 0–1; higher is more readable | 72.0Δ 34.7 |
| LLOC | 10 | Logical lines; fewer is more readable | 72.9Δ 35.6 |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs | 69.9Δ 32.6 |
| GPT-6.1 Sol | 17.67 | 0–20; mean of three runs | 63.1Δ 25.8 |
| BTTF | 0.437 | 0–1; higher is more readable | 36.4Δ 0.8 |
| Human | 0.65 | 0–1; original rating | 37.3 |
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. | 456.506 | −15.065 |
| Source linesThe number of non-empty source lines. | 14 | +5.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. | 3.672 | −5.508 |
Intercept 8.87 + feature contributions = -6.103 (log-odds).
Score = sigmoid(-6.103) = 0.002.
| Score | 0.75 |
|---|
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. | 48 | +1.632 |
| 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. | 1 | −0.703 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 14 | +0.541 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.123 | −0.254 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 12.694 | −0.232 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 14 | +0.1 |
Intercept 0.07 + feature contributions = 0.349 (log-odds).
Score = sigmoid(0.349) = 0.586.
| Score | 0.597 |
|---|
| Score | 10 |
|---|
Run 1
The code is highly readable. It has a clear structure: variable declaration, initial outputs, then a loop that generates and prints the sequence. Nesting is flat, with only one for loop. The intent is obvious—printing a Fibonacci sequence. The code is concise, avoiding unnecessary complexity. Actions are generally one per line, with only the variable declaration combining multiple items, which is acceptable for related initialization. Reading flow is natural: declare, print initial terms, then loop to compute and print the rest. Minor nits: the variable names f0, f1, f2 are terse but adequate in context; count is a bit ambiguous (could be more descriptive). Overall, clean, straightforward code.
Run 2
The code is clean and straightforward. It uses a flat structure with minimal nesting, and each line generally performs one clear action. Variable names like f0, f1, f2, and count are reasonably clear in context, though slightly terse. The loop logic is compact and readable, and the output order is logical. Minor deductions are due to ambiguous variable naming (e.g., 'count' could mean total numbers or iterations) and the multiple declarations on one line, which slightly reduces action granularity. Overall, it is concise, well-structured, and easy to follow.
Run 3
The code is logically structured and easy to follow. It uses a simple class with a clear main method, and the variable names f0, f1, and f2 adequately indicate Fibonacci sequence elements. Nesting is flat, with only one for-loop and no conditional nesting. The intent is clear: print the first 30 Fibonacci numbers. Code length is concise, avoiding unnecessary boilerplate or comments. Each logical action, such as variable assignment or printing, is on its own line, aiding readability. The reading flow is natural, progressing from initialization to output to iterative calculation. Minor deductions: the initial two println calls could be integrated into the loop for slightly better conciseness, and variable names like 'count' could be more descriptive (e.g., 'limit'). Overall, it is highly readable.
Run 1
Code Structure: The initialization, initial output, and sequence-generation loop are logically organized. Nesting: Only one loop inside main keeps nesting shallow. Clarity of intent: The class name and recurrence clearly indicate Fibonacci generation, though f0, f1, and f2 could have more descriptive names. The meaning of count is slightly ambiguous because the code prints 31 terms when count is 30. Code length: Compact without unnecessary logic. Action granularity: Most lines perform one action, but the combined variable declaration groups several initializations. Reading flow: Execution proceeds naturally from setup to output and iterative updates, with consistent formatting.
Run 2
Code Structure: The initialization, initial output, and sequence-generation loop are logically organized. Nesting: Only one loop inside main keeps nesting shallow. Clarity of intent: The class name and recurrence clearly identify Fibonacci generation, though f0, f1, and f2 are terse, and count is ambiguous because the code prints 31 values rather than 30. Code length: The implementation is concise without unnecessary abstractions or repetition. Action granularity: Loop statements each perform one action, but the combined variable declaration makes initialization slightly harder to scan. Reading flow: Execution proceeds naturally from setup through output and state updates, with consistent formatting.
Run 3
Code Structure: A single main method logically groups initialization, initial output, and sequence generation. Nesting: Only one loop, keeping the code shallow and easy to follow. Clarity of intent: The class name and recurrence clearly identify Fibonacci generation, though f0, f1, and f2 are less descriptive than previous, current, and next. The meaning of count is slightly ambiguous because the code prints 31 terms when count is 30. Code length: Short and appropriately concise, with no unnecessary logic. Action granularity: Most lines perform one action, but the combined variable declaration packs several initializations into one line. Reading flow: Initialization followed by output and iterative updates creates a natural, sequential flow.