Sample
Scalabrio128
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.001 | 0–1; higher is more readable | 74.4Δ 39.4 |
| Scalabrino | 0.199 | 0–1; higher is more readable | 15.1Δ 19.8 |
| Dorn | 0.096 | 0–1; higher is more readable | 15.1Δ 19.8 |
| Mi | 0.172 | 0–1; higher is more readable | 43.2Δ 8.3 |
| LLOC | 6 | Logical lines; fewer is more readable | 86.9Δ 52.0 |
| DeepSeek V4 Pro | 11.67 | 0–20; mean of three runs | 29.6Δ 5.3 |
| GPT-6.1 Sol | 15.33 | 0–20; mean of three runs | 24.9Δ 10.1 |
| BTTF | 0.567 | 0–1; higher is more readable | 63.8Δ 28.9 |
| Human | 3.33 | 1–5; original rating | 34.9 |
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. | 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.
| Score | 0.199 |
|---|
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. | 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.
| Score | 0.172 |
|---|
| Score | 6 |
|---|
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.