Sample
Scalabrio180
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 3.5Δ 2.3 |
| Scalabrino | 0.04 | 0–1; higher is more readable | 1.5Δ 0.3 |
| Dorn | 0.084 | 0–1; higher is more readable | 14.1Δ 12.8 |
| Mi | 0.062 | 0–1; higher is more readable | 25.6Δ 24.4 |
| LLOC | 28 | Logical lines; fewer is more readable | 7.8Δ 6.5 |
| DeepSeek V4 Pro | 9.67 | 0–20; mean of three runs | 17.3Δ 16.1 |
| GPT-6.1 Sol | 16 | 0–20; mean of three runs | 34.7Δ 33.4 |
| BTTF | 0.442 | 0–1; higher is more readable | 20.6Δ 19.3 |
| Human | 2.33 | 1–5; original rating | 1.3 |
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. | 2310.228 | −76.238 |
| Source linesThe number of non-empty source lines. | 41 | +16.4 |
| 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.754 | −7.131 |
Intercept 8.87 + feature contributions = -58.098 (log-odds).
Score = sigmoid(-58.098) = 0.
| Score | 0.04 |
|---|
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. | 121.951 | −1.5 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 1 | +1.001 |
| 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. | 1 | −0.703 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 41 | −0.52 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 39.813 | +0.147 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.105 | −0.083 |
Intercept 0.07 + feature contributions = -2.392 (log-odds).
Score = sigmoid(-2.392) = 0.084.
| Score | 0.062 |
|---|
| Score | 28 |
|---|
Run 1
The code has several readability issues. The method is very long with numerous repeated assertions and iterators, violating action granularity and code length criteria. Multiple actions occur per line in some cases, and there is redundant testing of the same behavior (three separate iterator tests). Variable names are somewhat verbose but clear. The structure is linear with minimal nesting, which is positive, but the repetitive nature makes it tedious to follow. Natural reading flow is disrupted by the constant repetition of long method chains like 'noInheritanceEntityBinding.getHierarchyDetails().getEntityIdentifier().getValueBinding()'. The intent could be clearer - it appears to verify no inheritance/polymorphism for SingleEntity, but the message is buried under excessive verification. Some positive aspects include flat nesting, consistent assertion style, and proper spacing. However, the test could be significantly shortened by extracting helper methods or fixtures, and the repeated patterns could be condensed into loops or parameterized assertions.
Run 2
The test method has a clear purpose and logical sequence of assertions about a non-polymorphic entity binding. However, readability is significantly reduced by excessive repetition and very long method chaining. Lines like `noInheritanceEntityBinding.getHierarchyDetails().getEntityIdentifier().getValueBinding()` are repeated many times, making the code noisy and hard to scan. The method is also very long with many assertions, and the lack of helper methods or local variables to group related checks hurts clarity. Nesting is flat, which is good, but action granularity is poor because multiple conceptual checks are crammed into single lines. The `@Resources` annotation is verbose due to formatting, adding visual clutter at the top. Overall, the code follows a straightforward structure but needs refactoring to extract repeated expressions and group assertions into smaller, self-documenting helper methods to improve readability.
Run 3
The code structure is logical with a single test method, but the method is extremely long and repetitive. Nesting is minimal, which is good, but clarity of intent suffers due to verbose repeated accessor chains like 'noInheritanceEntityBinding.getHierarchyDetails().getEntityIdentifier().getValueBinding()'. Code length is unnecessarily long for the assertions being made. Action granularity is reasonable—one assertion per line—but the reading flow is disrupted by the repetitive patterns and lack of helper methods or extracted variables. The test method would benefit from breaking down into smaller, focused tests or refactoring repeated expressions into local variables. Overall, it is functional and somewhat structured, but far from highly readable.
Run 1
Code Structure: The test logically progresses from entity inheritance properties to attribute bindings, but lacks visual grouping between assertion sections. Nesting: Only one shallow loop keeps complexity low. Clarity of intent: The test name, descriptive variables, and explicit assertions clearly communicate the expected non-polymorphic behavior. Code length: Reasonable overall, though repeated iterator checks and long identifier-access chains add verbosity and could be extracted into helpers or local variables. Action granularity: Most lines contain one assertion or assignment; iterator advancement within assertions is conventional but slightly mixes actions. Reading flow: Execution follows a natural sequence, although iterator reuse, repetitive assertions, and dense formatting make individual verification groups harder to distinguish.
Run 2
Code Structure: The test logically progresses from entity hierarchy checks to attribute binding checks, though blank lines or helper methods would better separate these sections. Nesting: Only one shallow loop appears, making control flow easy to follow. Clarity of intent: The test name, descriptive variable names, and assertions clearly convey verification of a non-polymorphic entity; repeated method chains require extra effort to interpret. Code length: Reasonable for its coverage, but repeated iterator checks and identifier lookups add verbosity. Action granularity: Each statement generally performs one clear action, although adding to a set inside assertTrue combines mutation and verification. Reading flow: The sequence is natural, but dense assertions, long lines, and reuse of the iterator variable slightly reduce readability.
Run 3
Code Structure: A single focused test logically progresses from entity inheritance properties to attribute bindings, though visual grouping would improve organization. Nesting: Only one shallow loop keeps control flow easy to follow. Clarity of intent: The test name, descriptive variable names, and explicit assertions clearly communicate the expected non-polymorphic behavior; repeated method chains take extra effort to parse. Code length: Reasonable for the coverage provided, but repeated iterator checks and identifier-binding lookups add verbosity. Action granularity: Each statement generally performs one clear action, although adding to a set inside an assertion combines mutation and verification. Reading flow: Assertions follow a natural sequence, but the lack of blank lines, long expressions, and iterator reassignment slightly hinder scanning.