Sample

Scalabrio128

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.33
Lines11

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett0.0010–1; higher is more readable
74.4Δ 39.4
Scalabrino0.1990–1; higher is more readable
15.1Δ 19.8
Dorn0.0960–1; higher is more readable
15.1Δ 19.8
Mi0.1720–1; higher is more readable
43.2Δ 8.3
LLOC6Logical lines; fewer is more readable
86.9Δ 52.0
DeepSeek V4 Pro11.670–20; mean of three runs
29.6Δ 5.3
GPT-6.1 Sol15.330–20; mean of three runs
24.9Δ 10.1
BTTF0.5670–1; higher is more readable
63.8Δ 28.9
Human3.331–5; original rating
34.9

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.403.212−13.306
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.882−7.323
Source linesThe number of non-empty source lines.11+4.4

Intercept 8.87 + feature contributions = -7.359 (log-odds).
Score = sigmoid(-7.359) = 0.001.

Score0.199

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.909−1.71
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.11+0.647
Indentation frequencyHow rapidly indentation changes from line to line.8−0.46
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.9.719−0.274
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.109−0.113

Intercept 0.07 + feature contributions = -2.247 (log-odds).
Score = sigmoid(-2.247) = 0.096.

Score0.172
Score6
Run 1

The code is generally readable with a clear, logical structure and reasonable action granularity. It avoids deep nesting and is concise. However, readability is hindered by repetitive long expressions like 'TestingJtaPlatformImpl.INSTANCE.getTransactionManager()', which could be extracted into a local variable. The test name 'testImplicitJoining' hints at intent, but the final line 'session.getFlushMode();' appears disconnected from the test's stated purpose and lacks a comment or assertion, making the test's true intent ambiguous. Overall the flow is natural, but clarity of intent and code length could be improved slightly.

Run 2

The code has a straightforward purpose - testing implicit joining behavior - and is moderately concise with one action per line. However, readability is hampered by repetitive verbose calls to TestingJtaPlatformImpl.INSTANCE.getTransactionManager() and unclear intent of the final session.getFlushMode() call. The nesting is flat and structure is okay, but the repeated long method chains obscure the core logic. Action granularity is fine, but reading flow could be improved with local variables and better separation of setup, action, and assertion phases.

Run 3

The code demonstrates poor readability due to several factors. It is moderately structured into setup, action, and assertion phases, which helps somewhat. However, the repeated verbose expression 'TestingJtaPlatformImpl.INSTANCE.getTransactionManager()' appears multiple times, making lines unnecessarily long and obscuring the intent. The test name 'testImplicitJoining' is ambiguous and does not clearly convey what is being tested, especially since the final line simply calls 'session.getFlushMode()' with no assertion. Variable naming and inline casting add clutter. While there is no deep nesting and each line generally contains one action, the overwhelming repetition and unclear purpose significantly reduce readability. The absence of comments or helper methods to explain the implicit joining scenario further hampers clarity of intent.

Run 1

Code Structure: The test follows a logical sequence: verify inactivity, begin a transaction, verify activity, and open a session. Nesting: There is no control-flow nesting, making it easy to scan. Clarity of intent: The test name suggests implicit joining, but autoJoinTransactions(false) and an unasserted getFlushMode() call leave the intended behavior unclear. Code length: It is concise, although repeated transaction-manager access adds verbosity. Action granularity: Each statement performs one main action; the session-creation chain combines related configuration steps naturally. Reading flow: Blank lines separate setup stages well, but the abrupt ending without a joining assertion or visible cleanup makes the test feel incomplete.

Run 2

Code Structure: The test is logically organized into initial-state verification, transaction startup, active-state verification, and session creation. Nesting: The method is flat, with no nested control flow. Clarity of intent: Assertions are clear, but the test name suggests implicit joining while autoJoinTransactions(false) disables it; the final getFlushMode() call has no assertion or evident purpose. Code length: Short overall, though repeated transaction-manager access adds verbosity. Action granularity: Each statement performs one primary action, but the session-creation line combines casting and several chained calls. Reading flow: Execution proceeds naturally, although the long session-creation line and unexplained final call interrupt comprehension.

Run 3

Code Structure: Logically arranged as initial-state verification, transaction startup, active-state verification, and session creation. Nesting: Flat, with no nested control flow. Clarity of intent: The test name suggests implicit joining, but disabling auto-join and calling getFlushMode() without asserting its result leave the intended behavior unclear. Code length: Short overall, though repeated transaction-manager access and the long session-creation expression reduce concision. Action granularity: Each statement performs one primary action, although method chains combine several configuration steps. Reading flow: Blank lines separate phases naturally, but the final unasserted call makes the test feel incomplete.