Sample

Scalabrio146

Human rating uses the original dataset scale.

DatasetScalabrino
Human2.78
Lines40

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
13.6Δ 5.8
Scalabrino0.390–1; higher is more readable
36.2Δ 28.4
Dorn0.2440–1; higher is more readable
31.2Δ 23.4
Mi0.0120–1; higher is more readable
6.5Δ 1.3
LLOC19Logical lines; fewer is more readable
28.4Δ 20.6
DeepSeek V4 Pro16.670–20; mean of three runs
85.7Δ 77.9
GPT-6.1 Sol160–20; mean of three runs
34.7Δ 26.9
BTTF0.5550–1; higher is more readable
57.8Δ 50.0
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.1613.161−53.234
Source linesThe number of non-empty source lines.40+16
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.843−7.265

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

Score0.39

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.114−1.163
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Indentation frequencyHow rapidly indentation changes from line to line.39+0.612
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.36−0.238
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.111−0.136
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.38.809+0.133

Intercept 0.07 + feature contributions = -1.13 (log-odds).
Score = sigmoid(-1.13) = 0.244.

Score0.012
Score19
Run 1

The code is well-structured, with clear logical grouping of related operations (fetch settings, type descriptors, custom persister setup, SQL overrides, metadata attributes). Nesting is minimal, limited to the two simple if-statements. Each line performs a distinct action, maintaining consistent granularity and readability. The intent is clear: binding basic plural attribute configurations from a source to a target object. Method and variable names are descriptive. There is a minor redundancy in the two if-statements checking the custom persister class name, which could be consolidated, but the overall flow is natural and follows a logical order. The code is concise and avoids unnecessary complexity.

Run 2

The code is generally well-structured and readable. It follows a clear sequential pattern of setting properties on a binding object from a source object. The method name clearly indicates its purpose. Most lines perform one action, and the overall flow is logical. However, there are a few issues: the two if blocks checking for a custom persister class are redundant and could confuse readers about intent. The method is somewhat long but not excessively so for a binding method. The nesting is minimal (one level for if blocks), which is good. The generic type parameters add some verbosity, and certain lines with chained method calls could be slightly more readable with intermediate variables. Overall, the code maintains reasonable clarity despite its length.

Run 3

The code is well-structured and follows a consistent pattern of delegating values from a source to a binding object. Each line performs a single action, making the granularity clear and the flow natural. The method name clearly conveys its purpose, and the sequence of operations is logical. However, there is a notable ambiguity: two conditional blocks handle custom persister class names differently, which could confuse readers about their intended distinction. Additionally, a few lines are slightly long, though they remain within reasonable limits. Overall, the code is readable but could benefit from clarifying the duplicate conditional logic.

Run 1

Code Structure: Related configuration assignments are grouped logically, but duplicate custom-persister blocks obscure the organization. Nesting: Control flow is shallow, with only two simple conditionals; multiline calls add little complexity. Clarity of intent: Descriptive method and accessor names clearly communicate binding configuration, though conflicting persister lookups and inconsistent empty-string versus null checks make the intended behavior uncertain. Code length: Mostly concise for the number of settings, but redundant persister handling and repeated accessor chains add avoidable length. Action granularity: Each statement performs one primary configuration action, making individual steps easy to follow. Reading flow: The method proceeds naturally through configuration groups to basic attribute binding, with useful whitespace, but the duplicate assignment interrupts that flow.

Run 2

Code Structure: Related configuration assignments are grouped logically, but duplicate custom-persister blocks introduce redundancy and potentially overwrite the same setting. Nesting: Control flow is shallow, with only two simple conditionals; multiline calls add little complexity. Clarity of intent: Descriptive method and property names make the source-to-binding mapping clear, though the two class-resolution paths and inconsistent checks obscure the intended persister behavior. Code length: Mostly concise for the configuration performed, but repeated descriptor access and duplicate persister handling add unnecessary verbosity. Action granularity: Each statement performs one primary configuration action, making individual operations easy to identify. Reading flow: The method progresses naturally through fetch, caching, type, persister, SQL, and metadata configuration before delegating common binding work. Long call chains and redundant conditionals slightly interrupt that flow.

Run 3

Code Structure: Related assignments are grouped with blank lines, but duplicate custom-persister blocks weaken organization. Nesting: Only shallow conditionals; multiline calls add visual indentation without substantial complexity. Clarity of intent: Descriptive method and accessor names make source-to-binding configuration clear, though competing persister lookups and inconsistent checks obscure the intended behavior. Code length: Mostly concise, with avoidable repetition in persister handling and type-descriptor access. Action granularity: Each statement performs one primary configuration action, although chained accessors require some parsing. Reading flow: Configuration proceeds naturally from fetching and caching through type information and custom operations to general attribute binding; the repeated persister assignment interrupts that flow.