Sample

Scalabrio90

Human rating uses the original dataset scale.

DatasetScalabrino
Human3.67
Lines37

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
31.7Δ 21.4
Scalabrino0.6160–1; higher is more readable
61.8Δ 8.8
Dorn0.5750–1; higher is more readable
65.8Δ 12.8
Mi0.1620–1; higher is more readable
42.2Δ 10.8
LLOC21Logical lines; fewer is more readable
23.1Δ 29.9
DeepSeek V4 Pro13.670–20; mean of three runs
43.2Δ 9.8
GPT-6.1 Sol160–20; mean of three runs
34.7Δ 18.3
BTTF0.5260–1; higher is more readable
47.7Δ 5.3
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.1240.447−40.935
Source linesThe number of non-empty source lines.37+14.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.443−6.665

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

Score0.616

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.106+0.906
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.105.946−0.822
Indentation frequencyHow rapidly indentation changes from line to line.35+0.473
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.36−0.405
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.37−0.274
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.07+0.266
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.35.776+0.09

Intercept 0.07 + feature contributions = 0.304 (log-odds).
Score = sigmoid(0.304) = 0.575.

Score0.162
Score21
Run 1

The code has clear intent and straightforward assertions but suffers from structural issues. It uses a single large loop with an inline indexOf check that is fragile (using > 0 instead of >= 0) and the MBean lookup logic could be extracted. The method is moderately long with repetitive getAttribute/assertEquals pairs that could be refactored into a helper. Nesting depth is two levels which is acceptable, but the long assertion for idleConnectionTestPeriod breaks the one-action-per-line principle. Variable naming is clear overall (actual_*, mbeanfound) though underscore usage is inconsistent with Java conventions. The c3p0 comment hints at external configuration but lacks context. Reading flow is mostly sequential but the break statement mid-loop is easy to miss. Overall it is readable for experienced developers familiar with JMX and c3p0 but could be improved with extraction of setup/assertion logic and more consistent formatting.

Run 2

The code is generally readable with clear intent and logical structure. It sets up an MBean query, iterates through results, and validates attributes. The conditional nesting is limited to one level inside a loop, and most assertions are one per line. However, readability suffers from the long and awkwardly formatted `idleConnectionTestPeriod` attribute retrieval, which spans multiple lines unnecessarily. The magic number check (`indexOf > 0`) and lack of helper methods reduce clarity slightly. Overall, the code is understandable but could be improved with better formatting and occasional extraction of repeated patterns.

Run 3

The code has a clear structure and logical organization, with a straightforward loop and assertions. Nesting is moderate but acceptable. The intent is generally clear, though the repetitive attribute assertions could be simplified. The code is somewhat long due to repeated similar assertions and verbose variable names. Action granularity is fine, with one action per line. Reading flow is natural, but the condition using indexOf() is less readable than contains(). The break statement is appropriate. Overall, it's moderately readable, hindered mainly by repetition and verbose naming.

Run 1

Code Structure: Logically organized into MBean discovery, attribute checks, and a final existence assertion. Nesting: A loop containing one conditional creates moderate, manageable nesting. Clarity of intent: Attribute names and assertions clearly convey pool-configuration verification, but the issue-number test name, generic variables 'set' and 'obj', and unexplained numeric expectations reduce clarity. Code length: Reasonably concise, though repeated retrieval-and-assertion pairs add verbosity. Action granularity: Each statement performs one clear action, making individual checks easy to follow. Reading flow: Consistent spacing and sequential assertions support natural reading; the unusually expanded final getAttribute call slightly interrupts consistency. The configuration comment provides useful context, while the 'BMean' typo and awkward wording in the failure message detract from polish.

Run 2

Code Structure: Logically organized into MBean discovery, configuration checks, and a final existence assertion. Nesting: A loop containing a conditional creates moderate nesting, but remains easy to follow. Clarity of intent: Attribute names and assertions clearly communicate pool-setting verification; the issue-number test name, generic variables set and obj, inconsistent naming, and BMean typo reduce clarity. Code length: Reasonably concise, although repeated attribute retrieval and assertion pairs add some verbosity. Action granularity: Each statement performs a single action, with retrieval and validation cleanly separated. Reading flow: Sequential checks, whitespace, and the configuration comment support natural reading; the wrapped final retrieval slightly interrupts the otherwise consistent pattern.

Run 3

Code Structure: Logically organized into MBean discovery, configuration checks, and a final presence assertion. Nesting: A loop containing one conditional creates moderate, manageable nesting. Clarity of intent: Attribute names and assertions clearly convey pool configuration verification, but the issue-number test name, generic set/obj names, unexplained expected values, and typo in the failure message reduce clarity. Code length: Reasonably concise, although repeated attribute retrieval and assertion pairs add verbosity. Action granularity: Each statement performs one main action, making individual checks easy to follow. Reading flow: The sequential checks and whitespace support natural reading; the multiline retrieval slightly interrupts consistency, and the found flag plus break require tracking state across the loop.