Sample

JetBrains/i52

Human rating uses the original dataset scale.

DatasetJetBrains
Human0.65
Lines14

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0020–1; higher is more readable
77.1Δ 39.8
Scalabrino0.750–1; higher is more readable
62.7Δ 25.4
Dorn0.5860–1; higher is more readable
65.3Δ 28.0
Mi0.5970–1; higher is more readable
72.0Δ 34.7
LLOC10Logical lines; fewer is more readable
72.9Δ 35.6
DeepSeek V4 Pro170–20; mean of three runs
69.9Δ 32.6
GPT-6.1 Sol17.670–20; mean of three runs
63.1Δ 25.8
BTTF0.4370–1; higher is more readable
36.4Δ 0.8
Human0.650–1; original rating
37.3

Views

Source code

public class FibonacciSequence { public static void main(String[] args) { int f0 = 0, f1 = 1, f2, count = 30; System.out.println(f0); System.out.println(f1); for (int i = 2; i <= count; i++) { f2 = f0 + f1; System.out.println(f2); f0 = f1; f1 = f2; } } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.75

Feature contributions

FeatureValueContribution
(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.

Score0.597
Score10
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.