Sample

Scalabrio6

Human rating uses the original dataset scale.

DatasetScalabrino
Human4.56
Lines18

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.9750–1; higher is more readable
99.5Δ 4.8
Scalabrino0.9750–1; higher is more readable
100.0Δ 5.3
Dorn0.8820–1; higher is more readable
99.0Δ 4.3
Mi0.7660–1; higher is more readable
95.5Δ 0.8
LLOC8Logical lines; fewer is more readable
76.9Δ 17.8
DeepSeek V4 Pro17.330–20; mean of three runs
93.2Δ 1.5
GPT-6.1 Sol18.670–20; mean of three runs
94.7Δ 0.0
BTTF0.7580–1; higher is more readable
98.0Δ 3.3
Human4.561–5; original rating
94.7

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.18+7.2
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.287−6.43
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.181.521−5.99

Intercept 8.87 + feature contributions = 3.65 (log-odds).
Score = sigmoid(3.65) = 0.975.

Score0.975

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.50+1.547
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.18+0.399
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Indentation frequencyHow rapidly indentation changes from line to line.13−0.287
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.16.784−0.175
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.091+0.059
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.49.944+0.001

Intercept 0.07 + feature contributions = 2.012 (log-odds).
Score = sigmoid(2.012) = 0.882.

Score0.766
Score8
Run 1

The code is highly readable. It has a clear, single-purpose structure with flat nesting. Each conditional branch performs one distinct action, and the return statements clearly signal the outcome. The use of early returns improves reading flow by avoiding nested conditionals. The method is concise and avoids unnecessary length. The Javadoc comment indicates intent, though the override is straightforward enough that the implementation is self-explanatory. Minor deduction for slightly terse formatting of the first return block, but overall meets all criteria well.

Run 2

The code is concise, clear, and well-structured. The method handles each character case in a flat, sequential manner with minimal nesting. Each conditional branch performs a single, obvious action, demonstrating good action granularity. The purpose is immediately evident from the Javadoc and the logic: it identifies line-end characters. The reading flow is natural—newline, carriage return, then default return false. Minor deductions: the Javadoc could be slightly more descriptive (e.g., explaining the boolean return meaning), and the method name 'addChar' is somewhat ambiguous without context. Overall, it is highly readable with little to improve.

Run 3

The code is clear and well-structured. Each condition is checked in a flat, straightforward manner with minimal nesting. The intent is obvious: detect line-ending characters and track their presence. The method is concise, with each action on its own line, making it easy to follow. The reading flow is natural, progressing from newline to carriage return to a default false return. The Javadoc comment adds context, though it is slightly redundant with the code itself.

Run 1

Code Structure: Two logically organized checks handle newline characters independently. Nesting: Shallow conditionals and early returns keep the code flat. Clarity of intent: Character literals and hasLf/hasCr flags clearly communicate line-ending detection, though addChar and the return value could be better documented. Code length: Concise, with no unnecessary logic. Action granularity: Each assignment and return occupies its own line. Reading flow: The sequential checks followed by a default false return are easy to follow; mixed indentation slightly detracts from presentation.

Run 2

Code Structure: Two clearly separated checks logically handle newline and carriage return characters. Nesting: Shallow conditionals and early returns keep the method flat. Clarity of intent: Character literals and flag names make line-ending detection apparent, though addChar and the comment could describe the behavior more precisely. Code length: Concise, with no unnecessary logic. Action granularity: Each assignment and return occupies its own line. Reading flow: The checks followed by a default false return are easy to follow; inconsistent indentation slightly detracts from presentation.

Run 3

Code Structure: Two logically separated checks make the method easy to follow. Nesting: Only one level of conditional nesting, with early returns keeping the flow flat. Clarity of intent: Explicit newline and carriage-return comparisons and descriptive flags convey the purpose, though addChar and the comment do not fully explain the return-value meaning. Code length: Short and appropriately concise without unnecessary abstraction. Action granularity: Each assignment and return occupies its own line. Reading flow: The sequential checks followed by a default false return read naturally; inconsistent indentation slightly reduces visual polish.