Sample
Scalabrio118
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 29.1Δ 36.9 |
| Scalabrino | 0.613 | 0–1; higher is more readable | 60.8Δ 5.3 |
| Dorn | 0.453 | 0–1; higher is more readable | 50.8Δ 15.3 |
| Mi | 0.553 | 0–1; higher is more readable | 78.9Δ 12.8 |
| LLOC | 23 | Logical lines; fewer is more readable | 15.8Δ 50.3 |
| DeepSeek V4 Pro | 17 | 0–20; mean of three runs | 90.2Δ 24.1 |
| GPT-6.1 Sol | 17 | 0–20; mean of three runs | 58.5Δ 7.5 |
| BTTF | 0.521 | 0–1; higher is more readable | 45.2Δ 20.9 |
| Human | 3.89 | 1–5; original rating | 66.1 |
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. | 1233.593 | −40.709 |
| Source linesThe number of non-empty source lines. | 35 | +14 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5.186 | −7.779 |
Intercept 8.87 + feature contributions = -25.618 (log-odds).
Score = sigmoid(-25.618) = 0.
| Score | 0.613 |
|---|
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. | 64.943 | +0.915 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 33 | −0.336 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 65 | +0.244 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.121 | −0.238 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 35 | −0.203 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 33.833 | +0.063 |
Intercept 0.07 + feature contributions = -0.188 (log-odds).
Score = sigmoid(-0.188) = 0.453.
| Score | 0.553 |
|---|
| Score | 23 |
|---|
Run 1
The constructor is well-structured, with clear logical grouping: model setup, font/visual configuration, column sizing, scroll pane assembly, and layout. Nesting is minimal, and each line performs a single action, which aids readability. Intent is clear from method and variable names (e.g., `tableModel`, `checkCol`, `descCol`). The code is concise and avoids unnecessary verbosity, though it could benefit from a helper method to encapsulate table column configuration. There is one duplicate line (`table.setAutoResizeMode`) that slightly hurts flow. Overall, the code reads naturally from setup to layout, making it easy to follow.
Run 2
The code is fairly readable with clear intent and logical structure, constructing a table-based checklist tab. It mostly maintains flat nesting and one action per line. However, several issues reduce clarity: the super constructor call uses a hardcoded string, magic numbers (20, 30, 900, -1) lack explanation, and setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN) is redundantly called twice. Additionally, the code mixes direct configuration with method calls without helper extraction, slightly reducing readability. Overall, the code is understandable but could be improved with constants, removal of duplicates, and clearer grouping.
Run 3
The code is well-structured and highly readable. It follows a logical constructor flow: initialize model, configure table appearance, set column widths, add scroll pane, and assemble layout. Nesting is minimal, with only one level for a BorderLayout add call. Intent is clear—each block has a distinct purpose. Code length is concise and appropriate for the task. Action granularity is mostly one action per line, though a few lines (e.g., table.setAutoResizeMode called twice) could be consolidated. Reading flow is natural and easy to follow from top to bottom.
Run 1
Code Structure: Logically groups table initialization, appearance, column sizing, and layout, though the constructor handles several setup concerns. Nesting: Flat, with no conditionals or loops, making it easy to scan. Clarity of intent: Method calls clearly convey UI configuration; names such as checkCol and descCol are useful, while sp is less descriptive and numeric sizing values lack context. Code length: Appropriately concise overall, but setAutoResizeMode is unnecessarily repeated and the constructor comment adds little value. Action granularity: Each statement performs a single clear action, with sensible line wrapping. Reading flow: Progresses naturally from model setup to visual configuration and component assembly; blank lines help distinguish stages, although inconsistent indentation slightly reduces polish.
Run 2
Code Structure: Initialization is logically grouped into model setup, styling, column configuration, and layout, though helper methods could clarify these sections. Nesting: The constructor is flat, with no nested control flow. Clarity of intent: Descriptive API calls make the checklist UI setup clear, but abbreviated names such as sp and descCol, unexplained numeric dimensions, and a generic constructor comment reduce clarity. Code length: Mostly concise, although setAutoResizeMode is called twice unnecessarily. Action granularity: Each statement performs one main action, making individual operations easy to follow. Reading flow: Setup proceeds naturally from table configuration to container assembly and listener registration; blank lines support scanning, while inconsistent indentation slightly detracts from presentation.
Run 3
Code Structure: Initialization is logically grouped into model setup, table styling, column sizing, and layout configuration. Nesting: The constructor is flat, with no nested control flow. Clarity of intent: Descriptive API calls make its purpose clear, although 'sp', unexplained numeric sizing values, and a generic constructor comment provide limited context. Code length: Concise overall, but setAutoResizeMode is called twice unnecessarily. Action granularity: Each statement generally performs one action; chained calls remain understandable. Reading flow: Setup proceeds naturally from table configuration to placement and listener registration. Blank lines help distinguish stages, though inconsistent indentation slightly reduces polish.