Sample
Dorn/java/221
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.982 | 0–1; higher is more readable | 94.2Δ 3.6 |
| Scalabrino | 0.911 | 0–1; higher is more readable | 96.1Δ 5.6 |
| Dorn | 0.853 | 0–1; higher is more readable | 86.4Δ 4.2 |
| Mi | 0.688 | 0–1; higher is more readable | 80.2Δ 10.3 |
| LLOC | 12 | Logical lines; fewer is more readable | 53.6Δ 36.9 |
| DeepSeek V4 Pro | 14.67 | 0–20; mean of three runs | 74.1Δ 16.4 |
| GPT-6.1 Sol | 16.67 | 0–20; mean of three runs | 73.8Δ 16.7 |
| BTTF | 0.617 | 0–1; higher is more readable | 77.2Δ 13.4 |
| Human | 3.96 | 1–5; original rating | 90.5 |
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. | 50 | +20 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 559.928 | −18.478 |
| 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.271 | −6.406 |
Intercept 8.87 + feature contributions = 3.986 (log-odds).
Score = sigmoid(3.986) = 0.982.
| Score | 0.911 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 51 | −0.769 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.038 | +0.575 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 78.98 | +0.47 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 33 | +0.404 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| 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. | 78.902 | +0.323 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 49.913 | +0.288 |
Intercept 0.07 + feature contributions = 1.759 (log-odds).
Score = sigmoid(1.759) = 0.853.
| Score | 0.688 |
|---|
| Score | 12 |
|---|
Run 1
The code is generally well-structured and readable. It follows standard JavaBean conventions with clear getter/setter methods and Javadoc comments. The constructor parameters are properly documented, and the super() call clearly establishes inheritance. Minor issues include inconsistent indentation (tabs vs spaces) and slight misalignment in the constructor parameter list. The PrimaryKeyInfo() default constructor could benefit from a brief comment explaining why all nulls are passed to super. The code is concise and actions are appropriately granular, though the constructor could be formatted more consistently. Overall, the intent is clear and the natural reading flow is maintained.
Run 2
The code is generally readable but has some inconsistencies. The class structure is logical with clear field accessors and mutators. However, the constructor uses mixed indentation (tabs vs spaces) which hurts visual consistency. The first constructor is empty without documentation, while the second is well-documented. The Javadoc comments are helpful but the parameter descriptions are inconsistent in style. Action granularity is mostly one action per line, though constructor parameters span multiple lines unnecessarily. Reading flow is natural but could be improved by aligning indentation and maintaining consistent documentation style. The code is concise overall, but the empty constructor and inconsistent formatting prevent a higher score.
Run 3
The code is generally readable but suffers from inconsistent indentation and mixed tab/space usage. Class structure is logical with clear constructor and getter/setter methods. Nesting is flat, which is good. Intent is mostly clear, though the empty constructor calling super(null, null, null, null, null) is opaque without additional context. Code length is appropriate for a simple data class. Action granularity is fine - one operation per line within methods. Reading flow is disrupted by misaligned braces and inconsistent spacing between method signatures and bodies. Javadoc comments are helpful but some parameters are documented while others aren't, and the third parameter name is inconsistently prefixed with 'a'. Overall, it's maintainable but would benefit from formatting fixes.
Run 1
Code Structure: Constructors and accessors are logically grouped and easy to distinguish. Nesting: No nested control flow; all method bodies are flat. Clarity of intent: Descriptive method and field names make the purpose clear, but the five null superclass arguments are opaque, parameter naming is inconsistent, and constructor documentation omits aTableName and leaves md unexplained. Code length: Implementations are concise, though accessor comments mostly repeat the method names. Action granularity: Each statement performs one action on its own line. Reading flow: The sequence is natural, but mixed indentation, inconsistent brace placement, and uneven parameter alignment interrupt visual consistency.
Run 2
Code Structure: Constructors and accessors are logically organized, though indentation and brace styles are inconsistent. Nesting: Completely flat method bodies make the code easy to scan. Clarity of intent: Descriptive names and straightforward assignments clearly convey primary-key metadata handling; however, the default constructor's five null arguments are opaque, aTableName lacks documentation, and md has an empty parameter description. Code length: Concise implementation, with some redundant accessor documentation. Action granularity: Each statement performs one action on its own line. Reading flow: Natural progression from construction to accessors, slightly disrupted by inconsistent formatting and mixed parameter naming conventions.
Run 3
Code Structure: Constructors and accessors are logically grouped, though indentation and brace styles are inconsistent. Nesting: Methods are flat, with no nested control flow. Clarity of intent: Descriptive names and straightforward assignments make the purpose clear; however, the five null superclass arguments are opaque, constructor documentation omits aTableName, and md is undocumented. Code length: The implementation is concise, although accessor comments largely repeat the method names. Action granularity: Each statement performs one action on its own line. Reading flow: Construction followed by accessors is natural, but mixed tabs, spaces, and parameter alignment slightly disrupt scanning.