Sample

JetBrains/e51

Human rating uses the original dataset scale.

DatasetJetBrains
Human0.82
Lines17

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0040–1; higher is more readable
81.4Δ 16.5
Scalabrino0.6450–1; higher is more readable
47.5Δ 17.4
Dorn0.8240–1; higher is more readable
100.0Δ 35.2
Mi0.6390–1; higher is more readable
80.5Δ 15.7
LLOC11Logical lines; fewer is more readable
63.6Δ 1.3
DeepSeek V4 Pro17.330–20; mean of three runs
78.8Δ 14.0
GPT-6.1 Sol180–20; mean of three runs
77.5Δ 12.7
BTTF0.5740–1; higher is more readable
84.7Δ 19.9
Human0.820–1; original rating
64.8

Views

Source code

public class CollatzConjecture { public static void main(String[] args) { for (int i = 1; i <= 1000; i++) { int stoppingTime = 0; int number = i; while (number != 1) { if (number % 2 == 0) { number = number / 2; } else { number = number * 3 + 1; } stoppingTime++; } System.out.println(stoppingTime); } } }

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

Score0.645

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

Score0.639
Score11
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.