Sample
Scalabrio80
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 28.6Δ 24.4 |
| Scalabrino | 0.592 | 0–1; higher is more readable | 58.3Δ 5.3 |
| Dorn | 0.395 | 0–1; higher is more readable | 45.2Δ 7.8 |
| Mi | 0.059 | 0–1; higher is more readable | 24.1Δ 28.9 |
| LLOC | 22 | Logical lines; fewer is more readable | 19.3Δ 33.7 |
| DeepSeek V4 Pro | 11.67 | 0–20; mean of three runs | 29.6Δ 23.4 |
| GPT-6.1 Sol | 16 | 0–20; mean of three runs | 34.7Δ 18.3 |
| BTTF | 0.508 | 0–1; higher is more readable | 41.2Δ 11.8 |
| Human | 3.67 | 1–5; original rating | 53.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. | 1271.899 | −41.973 |
| Source linesThe number of non-empty source lines. | 36 | +14.4 |
| 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.858 | −7.287 |
Intercept 8.87 + feature contributions = -25.99 (log-odds).
Score = sigmoid(-25.99) = 0.
| Score | 0.592 |
|---|
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. | 114.944 | −1.203 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 115 | +1.051 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 33 | −0.336 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 36 | −0.238 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 26 | +0.162 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 34.81 | +0.077 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.098 | −0.01 |
Intercept 0.07 + feature contributions = -0.428 (log-odds).
Score = sigmoid(-0.428) = 0.395.
| Score | 0.059 |
|---|
| Score | 22 |
|---|
Run 1
The code has some organization and clear sections (transaction setup, property creation, queries, cleanup), but overall readability is low. The single large test method combines many actions without helper methods, making the intent harder to grasp. There is moderate vertical nesting from the `@Test` method body, but the real issue is lack of logical grouping or separation of concerns. The code includes many method calls per line in some places, especially the query lines, reducing clarity. Variable names are descriptive but the flow jumps abruptly from setup to assertions/queries without formal assertions or comments explaining expected outcomes. The TODO adds context but also highlights an unresolved issue. Overall, the code is functional but dense and would benefit from refactoring into smaller, self-documenting methods or at least extracted steps with blank lines and comments.
Run 2
The code is generally readable with clear intent, sensible variable names, and logical grouping. It follows a typical test setup/execute/teardown flow. The structure is mostly flat with minimal nesting, and each action occupies its own line. However, it could be improved by extracting repetitive query execution into helper methods and splitting the long 'loneliest number' property setup lines for better readability. The commented TODO explains a known limitation but interrupts flow slightly. Overall, it is concise for what it does, but not maximally polished.
Run 3
The code is moderately readable but has some issues. The structure follows a logical test-flow: setup, transaction, operations, cleanup. However, it lacks section separation, making the flow feel monolithic. Nesting is flat, which is good, but clarity of intent is reduced by the absence of comments explaining each query's purpose (except the TODO comment). Code length is reasonable but could be streamlined with helper methods for repeated transaction handling. Action granularity is mostly one action per line, though some lines combine multiple method calls (e.g., `s.delete(s.load(...))`). Reading flow is natural enough, but variable names like `s` and `ps` are terse. The inline TODO is informative but breaks the flow slightly. Overall, the code is functional but would benefit from better sectioning, more descriptive variable names, and extracted transaction helpers.
Run 1
Code Structure: Logically organized into setup, persistence, queries, and cleanup, with blank lines separating phases. Nesting: Flat control flow makes the method easy to scan. Clarity of intent: Descriptive property-value names and the explanatory TODO help, but abbreviated variables such as s and ps reduce clarity; queries lack assertions, leaving the precise expected outcome implicit. Code length: Reasonably concise for an integration test, though some setup is repetitive. Action granularity: Most statements perform one action, but chained query execution and nested load/delete calls combine several operations on single lines. Reading flow: The transaction lifecycle proceeds naturally, although the long TODO and query lines interrupt scanning slightly.
Run 2
Code Structure: Clearly organized into setup, persistence, queries, and cleanup, with blank lines separating phases. Nesting: Flat control flow makes the test easy to scan. Clarity of intent: Domain names and query strings are descriptive, but abbreviated variables (s, ps, ssp), the broad test name, and absent assertions leave expected outcomes unclear. Code length: Reasonably concise, although repeated transaction and query calls add some verbosity. Action granularity: Most lines perform one primary action; chained query construction, parameter binding, and execution, plus nested load/delete calls, slightly reduce clarity. Reading flow: Execution follows a natural lifecycle, though the lengthy TODO interrupts it and the early id declaration separates declaration from assignment.
Run 3
Code Structure: Logically organized into setup, persistence, queries, and cleanup, with blank lines separating phases. Nesting: Flat control flow makes the method easy to scan. Clarity of intent: Domain names and query strings are understandable, and the TODO explains a limitation; however, abbreviated names such as s and ps and queries without assertions obscure the precise test expectations. Code length: Reasonably concise, though repeated transaction access and verbose query chains add minor overhead. Action granularity: Most statements perform one action, but chained query construction, parameter binding, and execution combine several operations on one line. Reading flow: The lifecycle progresses naturally, although declaring id before initialization and the lengthy TODO slightly interrupt the flow.