Sample

Scalabrio127

Human rating uses the original dataset scale.

DatasetScalabrino
Human2.78
Lines42

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
11.6Δ 3.8
Scalabrino0.1110–1; higher is more readable
8.0Δ 0.3
Dorn0.4820–1; higher is more readable
54.8Δ 47.0
Mi0.1210–1; higher is more readable
39.2Δ 31.4
LLOC28Logical lines; fewer is more readable
7.8Δ 0.0
DeepSeek V4 Pro13.670–20; mean of three runs
43.2Δ 35.4
GPT-6.1 Sol170–20; mean of three runs
58.5Δ 50.8
BTTF0.5080–1; higher is more readable
40.7Δ 32.9
Human2.781–5; original rating
7.8

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.1681.729−55.497
Source linesThe number of non-empty source lines.42+16.8
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.731−7.096

Intercept 8.87 + feature contributions = -36.923 (log-odds).
Score = sigmoid(-36.923) = 0.

Score0.111

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.126.952−1.712
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.127+1.245
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.38−0.309
Indentation frequencyHow rapidly indentation changes from line to line.29+0.266
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.116−0.183
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.40.383+0.155

Intercept 0.07 + feature contributions = -0.071 (log-odds).
Score = sigmoid(-0.071) = 0.482.

Score0.121
Score28
Run 1

The test method has a clear sequential purpose but suffers from repetitive, verbose assertions and deep chaining. Structure is logical (setup, action, verification), but the repeated `TestingJtaPlatformImpl.INSTANCE.getTransactionManager()` inline calls bloat lines and obscure intent. Nesting is flat, which is good. Clarity of intent is mixed: comments explain certain actions, but assertions like `transaction.isParticipating()` lack context. Code length is unnecessarily long due to repetitive setup and assertion blocks. Action granularity is mostly one action per line, though some lines combine method calls and casts. Reading flow is natural for a test but verbose; extracting helper methods or constants would improve readability.

Run 2

The test method has a clear purpose and follows a logical sequence, testing transaction state changes. The use of assertions makes intent explicit. However, readability is hindered by several factors: long qualified names (e.g., TestingJtaPlatformImpl.INSTANCE.getTransactionManager()) create repetitive, noisy lines; casting and chaining are dense; and comments like 'causes a call to TransactionCoordinator#pulse' are necessary to clarify non-obvious side effects. Nesting is minimal, and action granularity is mostly one logical action per line, but the heavy use of static helper calls and repeated assertFalse/assertTrue blocks reduces flow. Overall, the code is test-focused and structured, but could benefit from local variables or helper methods to reduce verbosity and improve scanability.

Run 3

The code has a clear, linear test structure with good action granularity, but suffers from excessive cast expressions and repetitive fully-qualified names that obscure intent. The lack of helper methods or local variables for recurring operations like 'TestingJtaPlatformImpl.INSTANCE.getTransactionManager()' and the repeated casts to '(SessionImplementor)' and '(TransactionImplementor)' make it verbose and harder to scan. Nesting is minimal, and the reading flow follows a logical sequence of setup, assertions, state changes, and cleanup. However, the intent could be clearer with better naming and abstraction of repeated expressions. Overall, it's understandable but not highly readable.

Run 1

Code Structure: Logically organized into setup, state checks, transaction activation, explicit joining, and cleanup, with blank lines separating phases. Nesting: Flat control flow makes the test easy to follow. Clarity of intent: The test name and assertions clearly communicate explicit transaction joining; the comment explains the otherwise non-obvious getFlushMode() call, though subsequent calls rely on that explanation. Code length: Reasonably concise for the behavior tested, but repeated assertions and long transaction-manager access chains add verbosity. Action granularity: Each statement performs one primary action; chained setup calls and casts slightly increase parsing effort. Reading flow: The chronological progression is natural, although inconsistent assertion ordering across phases, repeated casts, and lengthy expressions mildly interrupt readability.

Run 2

Code Structure: Logically organized into setup, transaction activation, explicit joining, verification, and cleanup, with blank lines separating phases. Nesting: Entirely flat, making execution easy to follow. Clarity of intent: The test name, descriptive API calls, and assertions communicate the behavior under test; the comment explains the otherwise nonobvious getFlushMode() side effect, although later calls rely on remembering it. Code length: Reasonable for the tested lifecycle, but repeated assertions and long transaction-manager access chains add verbosity. Action granularity: Each statement performs one main action, though setup expressions contain several chained calls and casts. Reading flow: The chronological sequence is natural and state transitions are clear, but repeated checks and slightly inconsistent assertion ordering make comparison between phases less effortless.

Run 3

Code Structure: Logically organized into setup, transaction activation, explicit joining, verification, and cleanup, with blank lines separating phases. Nesting: No control-flow nesting, making execution straightforward to follow. Clarity of intent: The test name and assertions clearly convey the behavior under test; the comment explains the otherwise nonobvious getFlushMode() side effect. Code length: Reasonable for a lifecycle test, though repeated assertions and lengthy transaction-manager access chains add verbosity. Action granularity: Each statement performs one primary action, with setup expressions containing several chained operations. Reading flow: The chronological progression is natural, but repeated casts, long lines, and the less obvious markForJoin()/join()/pulse interaction create minor friction.