Sample
Dorn/java/208
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.003 | 0–1; higher is more readable | 64.1Δ 31.2 |
| Dorn | 0.571 | 0–1; higher is more readable | 50.1Δ 45.1 |
| Mi | 0.532 | 0–1; higher is more readable | 57.1Δ 38.2 |
| LLOC | 1 | Logical lines; fewer is more readable | 97.9Δ 2.6 |
| DeepSeek V4 Pro | 13 | 0–20; mean of three runs | 59.3Δ 35.9 |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs | 98.9Δ 3.6 |
| BTTF | 0.658 | 0–1; higher is more readable | 86.6Δ 8.6 |
| Human | 4.14 | 1–5; original rating | 95.3 |
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. | 366.953 | −12.109 |
| 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.353 | −6.529 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
Intercept 8.87 + feature contributions = -5.769 (log-odds).
Score = sigmoid(-5.769) = 0.003.
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. | 60 | +1.124 |
| 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. | 11 | +0.647 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.738 | −0.274 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.115 | −0.172 |
Intercept 0.07 + feature contributions = 0.286 (log-odds).
Score = sigmoid(0.286) = 0.571.
| Score | 0.532 |
|---|
| Score | 1 |
|---|
Run 1
The code is a concise import block with clear, logically grouped dependencies. Structure is good, nesting is absent, and each line represents one action. However, readability is limited by the lack of context—there's no class or method to indicate intent. Imports like 'PortalClassLoaderUtil' and 'SortedProperties' are unused in the visible snippet, creating ambiguity about purpose. The grouping is mostly logical but could follow a more conventional ordering (e.g., grouping Liferay utilities together). Overall, it's readable for what it is, but incomplete context prevents a higher score.
Run 2
This code is a simple import block for Java/Liferay. It is concise and lists dependencies clearly. However, it lacks any class or method structure, making it incomplete as a standalone unit. Intent is implicit—preparing for Liferay utility usage—but without surrounding code, clarity is limited. The flat structure is easy to scan, but there is no logic or actions to assess for granularity or flow. Overall, it is readable as an import section, but scores low because it does not represent a functional code unit.
Run 3
The code is a concise import block for a Java/Liferay class. It is logically structured, with Liferay imports grouped first, followed by java.util imports, and each import on its own line, adhering to good action granularity. There is no nesting or complex logic, so clarity of intent is high—these are clearly external dependencies. The reading flow is natural and conventional. The only minor deductions are for the absence of a class or method context to fully confirm structure, and the import block alone doesn't reveal the broader file organization.
Run 1
Code Structure: Imports are logically grouped into Liferay dependencies and Java standard-library classes, separated by a blank line. Nesting: None, making the snippet easy to scan. Clarity of intent: Explicit imports clearly identify dependencies, although the snippet contains no executable code to establish a broader purpose. Code length: Concise, with no unnecessary declarations visible. Action granularity: Each import occupies its own line. Reading flow: Consistent formatting and alphabetical ordering within groups provide a natural reading sequence.
Run 2
Code Structure: Imports are logically grouped into framework and standard-library dependencies, separated by a blank line. Nesting: None, making the snippet easy to scan. Clarity of intent: Each imported dependency is explicit, although imports alone cannot reveal the program's overall purpose. Code length: Concise, with no visible unnecessary content; whether any imports are unused cannot be determined. Action granularity: Each import occupies its own line. Reading flow: Consistent ordering and spacing provide a natural top-to-bottom reading flow. The score applies only to this import block, not to implementation readability.
Run 3
Code Structure: Imports are logically grouped by library and separated from standard Java imports. Nesting: There is no nesting. Clarity of intent: Explicit imports clearly identify dependencies, though the snippet contains no executable code to reveal its broader purpose. Code length: The snippet is concise, with no unnecessary statements. Action granularity: Each import occupies its own line. Reading flow: Consistent formatting and alphabetical ordering within each group make the imports easy to scan. The score reflects the readability of this import-only snippet, not the unseen implementation.