Sample
Scalabrio134
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 22.6Δ 36.4 |
| Scalabrino | 0.751 | 0–1; higher is more readable | 77.9Δ 18.8 |
| Dorn | 0.341 | 0–1; higher is more readable | 40.2Δ 18.8 |
| Mi | 0.052 | 0–1; higher is more readable | 23.6Δ 35.4 |
| LLOC | 22 | Logical lines; fewer is more readable | 19.3Δ 39.7 |
| DeepSeek V4 Pro | 12 | 0–20; mean of three runs | 31.4Δ 27.6 |
| GPT-6.1 Sol | 15.67 | 0–20; mean of three runs | 27.1Δ 31.9 |
| BTTF | 0.492 | 0–1; higher is more readable | 36.7Δ 22.4 |
| Human | 3.78 | 1–5; original rating | 59.0 |
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. | 1323.624 | −43.68 |
| 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. | 4.895 | −7.342 |
Intercept 8.87 + feature contributions = -28.151 (log-odds).
Score = sigmoid(-28.151) = 0.
| Score | 0.751 |
|---|
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. | 119 | −1.375 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 95.257 | +0.732 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 28 | +0.231 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 28 | −0.222 |
| 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.775 | +0.062 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.092 | +0.043 |
Intercept 0.07 + feature contributions = -0.66 (log-odds).
Score = sigmoid(-0.66) = 0.341.
| Score | 0.052 |
|---|
| Score | 22 |
|---|
Run 1
The code has a clear purpose and is logically structured, but it suffers from several readability issues. The method contains two distinct sections (persisting and retrieving) that could be separated for better clarity. Nested method calls create deep nesting, particularly in the assertion statement. The code is overly verbose, with repetitive session management code that could be extracted. Action granularity is inconsistent - some lines contain multiple actions while others are simple. Reading flow is disrupted by the long assertion line spanning multiple lines. Variable naming is poor ('s', 'e', 'pm') which obscures intent. The code would benefit from better variable names, extracted helper methods for session management, and breaking down the complex assertion into smaller, more readable steps.
Run 2
The code is reasonably structured but has significant readability issues. The test method includes a long explanatory comment, which is helpful but adds clutter. Nesting is relatively flat, which is good. However, the assertion contains a deeply chained expression that is hard to read and violates action granularity. There are multiple actions per line in several places, such as session creation and transaction handling. The variable names are clear, but the code could be more concise by extracting setup logic or using helper methods. The reading flow is somewhat natural but disrupted by the long assertion and inline comments.
Run 3
The code has clear intent with explanatory comments and logical organization, but suffers from moderate nesting and repeated session boilerplate. The test method is long, mixing setup, persistence, and assertions. Action granularity is inconsistent: multiple statements on some lines reduce readability. The assertion chains multiple method calls, making it harder to follow. Overall structure is understandable, but readability could be improved by extracting setup/teardown and simplifying assertions.
Run 1
Code Structure: The test is logically organized into entity setup/persistence and reload/verification phases, separated by whitespace. Nesting: There are no nested control structures, making execution easy to follow. Clarity of intent: The descriptive test name, issue annotation, specification comment, and assertion message explain the purpose, though abbreviated variables such as s, e, and pm reduce clarity. Code length: Reasonably concise, but the lengthy specification comment, separate session declaration and assignment, and repeated transaction lifecycle calls add bulk. Action granularity: Statements generally perform one action per line; however, the assertion contains a long getter chain that requires extra effort to interpret. Reading flow: Execution follows a natural setup-save-reload-assert sequence, although inconsistent spacing and reuse of session/entity variables slightly disrupt readability.
Run 2
Code Structure: The test is logically organized into entity setup, persistence, and retrieval/assertion phases, with a blank line separating the main phases. Nesting: The body is flat, with no nested control flow. Clarity of intent: The descriptive method name, issue annotation, specification comment, and assertion message explain the purpose, though abbreviated variables such as s, e, and pm reduce clarity. Code length: The implementation is reasonably concise, but the lengthy specification comment and separate session declaration/assignment add bulk. Action granularity: Each statement performs one primary action; however, the assertion contains a long chained expression that requires extra parsing. Reading flow: Execution follows a natural setup-save-reload-verify sequence, but inconsistent spacing, repeated transaction boilerplate, and the dense assertion slightly interrupt readability.
Run 3
Code Structure: The test logically separates entity setup and persistence from retrieval and verification, though transaction boilerplate obscures these phases. Nesting: Execution is flat, with no nested control flow. Clarity of intent: The descriptive test name, issue annotation, and specification comment explain the purpose, but abbreviated variables such as s, e, and pm reduce immediate clarity. Code length: Reasonably compact, although the lengthy comment, separate session declaration and assignment, and repeated session lifecycle operations add bulk. Action granularity: Statements generally perform one action per line; the assertion's long getter chain combines several navigation steps and is harder to parse. Reading flow: The sequence is natural and chronological, with a blank line distinguishing verification, but inconsistent spacing and dense object relationship setup slightly interrupt readability.