Sample
Scalabrio42
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.264 | 0–1; higher is more readable | 87.9Δ 9.8 |
| Scalabrino | 0.9 | 0–1; higher is more readable | 94.5Δ 3.3 |
| Dorn | 0.662 | 0–1; higher is more readable | 74.9Δ 22.9 |
| Mi | 0.82 | 0–1; higher is more readable | 98.0Δ 0.3 |
| LLOC | 15 | Logical lines; fewer is more readable | 44.5Δ 53.3 |
| DeepSeek V4 Pro | 18.33 | 0–20; mean of three runs | 99.7Δ 2.0 |
| GPT-6.1 Sol | 18.67 | 0–20; mean of three runs | 94.7Δ 3.0 |
| BTTF | 0.735 | 0–1; higher is more readable | 95.0Δ 2.8 |
| Human | 4.67 | 1–5; original rating | 97.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) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 528.809 | −17.451 |
| Source linesThe number of non-empty source lines. | 34 | +13.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. | 4.031 | −6.046 |
Intercept 8.87 + feature contributions = -1.027 (log-odds).
Score = sigmoid(-1.027) = 0.264.
| Score | 0.9 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| 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. | 76 | +0.446 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.066 | +0.299 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 67.206 | +0.28 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 34 | −0.167 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 32.857 | +0.049 |
Intercept 0.07 + feature contributions = 0.672 (log-odds).
Score = sigmoid(0.672) = 0.662.
| Score | 0.82 |
|---|
| Score | 15 |
|---|
Run 1
The code is highly readable with a clear, linear structure. It follows a logical early-exit pattern, checking identity, type, and each field in sequence. Nesting is minimal, with no deep indentation or nested conditions. Intent is obvious: it is a standard equals implementation for a Second class. Code length is concise and appropriate, with no redundancy or unnecessary verbosity. Action granularity is excellent, as each comparison is placed on its own line, making logic easy to trace. Reading flow is natural, progressing from broad checks to specific field comparisons. The only minor weakness is the variable name 'that,' which is conventional but could be more descriptive. Overall, it is nearly ideal for maintainability.
Run 2
The code is highly readable due to its clean structure, flat nesting, and clear intent. Each guard clause is separated, improving logical flow and reducing nesting. Action granularity is excellent: one comparison per line. Naming is descriptive (obj, that, second, minute, hour, day). The Javadoc is thorough and clarifies edge cases. Only minor points: the deep 'day.equals' call adds slight complexity, and the final 'return true' could theoretically be simplified, but this is conventional and arguably clearer. Overall, the code is concise, well-organized, and easy to follow.
Run 3
The code is highly readable. It follows a clear, flat structure with a logical equality check flow: identity check, type check, then field-by-field comparison. Each comparison is on its own line, ensuring low nesting and clear action granularity. The early returns reduce complexity and make the intent evident. The Javadoc is thorough, clarifying behavior and edge cases. The only minor issue is the slightly verbose repetitive field checks, but this improves clarity and remains concise.
Run 1
Code Structure: Logically organized, progressing from identity and type checks to field comparisons. Nesting: Flat guard clauses keep nesting minimal. Clarity of intent: The method name and explicit comparisons clearly communicate equality testing, though the return documentation mentions only second and minute while the implementation also compares hour and day. Code length: Concise overall, with slightly repetitive comparison blocks that favor explicitness. Action granularity: Each statement performs one clear action. Reading flow: Consistent formatting and early returns make the method easy to follow from top to bottom.
Run 2
Code Structure: Logically organized identity check, type check, cast, and field comparisons. Nesting: Flat guard clauses keep nesting minimal. Clarity of intent: The method name and explicit comparisons make equality semantics clear, though the @return documentation mentions only second and minute while the implementation also checks hour and day. Code length: Slightly repetitive but appropriately concise and easy to scan. Action granularity: Each statement performs one action, with separate checks and returns. Reading flow: Natural progression from quick checks to detailed comparisons, ending with success.
Run 3
Code Structure: Logically organized, checking identity and type before comparing fields. Nesting: Flat guard clauses keep nesting minimal. Clarity of intent: The equality checks are explicit and easy to understand, although the return documentation mentions only second and minute while the implementation also compares hour and day. Code length: Slightly repetitive but appropriately short; combining comparisons could reduce length at some cost to scanability. Action granularity: Each statement performs one clear action. Reading flow: Natural progression from quick exclusions to field-by-field comparison, ending with success.