Sample
Scalabrio6
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.975 | 0–1; higher is more readable | 99.5Δ 4.8 |
| Scalabrino | 0.975 | 0–1; higher is more readable | 100.0Δ 5.3 |
| Dorn | 0.882 | 0–1; higher is more readable | 99.0Δ 4.3 |
| Mi | 0.766 | 0–1; higher is more readable | 95.5Δ 0.8 |
| LLOC | 8 | Logical lines; fewer is more readable | 76.9Δ 17.8 |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs | 93.2Δ 1.5 |
| GPT-6.1 Sol | 18.67 | 0–20; mean of three runs | 94.7Δ 0.0 |
| BTTF | 0.758 | 0–1; higher is more readable | 98.0Δ 3.3 |
| Human | 4.56 | 1–5; original rating | 94.7 |
Views
Select the downloaded ZIP or its extracted folder. Files stay in your browser.
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.975 |
|---|
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. | 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.
| Score | 0.766 |
|---|
| Score | 8 |
|---|
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.