Sample

Scalabrio80

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.67
Lines36

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
28.6Δ 24.4
Scalabrino0.5920–1; higher is more readable
58.3Δ 5.3
Dorn0.3950–1; higher is more readable
45.2Δ 7.8
Mi0.0590–1; higher is more readable
24.1Δ 28.9
LLOC22Logical lines; fewer is more readable
19.3Δ 33.7
DeepSeek V4 Pro11.670–20; mean of three runs
29.6Δ 23.4
GPT-6.1 Sol160–20; mean of three runs
34.7Δ 18.3
BTTF0.5080–1; higher is more readable
41.2Δ 11.8
Human3.671–5; original rating
53.0

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.

Score0.592

Feature contributions

FeatureValueContribution
(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.

Score0.059
Score22
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.