Sample
Scalabrio90
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 31.7Δ 21.4 |
| Scalabrino | 0.616 | 0–1; higher is more readable | 61.8Δ 8.8 |
| Dorn | 0.575 | 0–1; higher is more readable | 65.8Δ 12.8 |
| Mi | 0.162 | 0–1; higher is more readable | 42.2Δ 10.8 |
| LLOC | 21 | Logical lines; fewer is more readable | 23.1Δ 29.9 |
| DeepSeek V4 Pro | 13.67 | 0–20; mean of three runs | 43.2Δ 9.8 |
| GPT-6.1 Sol | 16 | 0–20; mean of three runs | 34.7Δ 18.3 |
| BTTF | 0.526 | 0–1; higher is more readable | 47.7Δ 5.3 |
| Human | 3.67 | 1–5; original rating | 53.0 |
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. | 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.
| Score | 0.616 |
|---|
Feature contributions
| Feature | Value | Contribution (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.
| Score | 0.162 |
|---|
| Score | 21 |
|---|
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.