Sample
Dorn/java/114
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0.039 | 0–1; higher is more readable | 71.3Δ 11.1 |
| Scalabrino | 0.687 | 0–1; higher is more readable | 72.9Δ 12.7 |
| Dorn | 0.615 | 0–1; higher is more readable | 52.9Δ 7.2 |
| Mi | 0.678 | 0–1; higher is more readable | 77.7Δ 17.5 |
| LLOC | 7 | Logical lines; fewer is more readable | 67.7Δ 7.5 |
| DeepSeek V4 Pro | 7.33 | 0–20; mean of three runs | 24.8Δ 35.4 |
| GPT-6.1 Sol | 8.67 | 0–20; mean of three runs | 5.0Δ 55.2 |
| BTTF | 0.35 | 0–1; higher is more readable | 19.8Δ 40.4 |
| Human | 3.46 | 1–5; original rating | 60.2 |
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. | 260 | −8.58 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 5 | −7.5 |
| Source linesThe number of non-empty source lines. | 10 | +4 |
Intercept 8.87 + feature contributions = -3.21 (log-odds).
Score = sigmoid(-3.21) = 0.039.
| Score | 0.687 |
|---|
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. | 60 | +1.124 |
| 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. | 10 | +0.682 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 10 | −0.391 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 9.885 | −0.272 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 10 | +0.191 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.111 | −0.134 |
Intercept 0.07 + feature contributions = 0.467 (log-odds).
Score = sigmoid(0.467) = 0.615.
| Score | 0.678 |
|---|
| Score | 7 |
|---|
Run 1
The code snippet is incomplete and confusing. The class declaration appears after a stray comment block, which disrupts structure. While the nesting is minimal (a for loop with an if inside), the infinite loop with a timeout counter is not immediately clear: a common pattern in Selenium tests but poorly expressed as 'for (int second = 0;; second++)'. The intent of the loop—waiting for a condition—is ambiguous without a comment or a helper method. Action granularity is acceptable since each line performs one action. However, reading flow suffers due to the abrupt start and lack of surrounding context. The fragment is short, but the missing code makes it impossible to judge overall logic or whether the class is well-organized. The 'loadRequiredJavaScriptModules()' call suggests side effects that aren't explained. Overall, the code is functional but not highly readable, with unclear intent and an unnatural structure.
Run 2
The code snippet is incomplete and lacks context, making full evaluation difficult. However, several issues are apparent. The class name 'AddAddress1MyAccountTest' suggests a test, but the method 'testAddAddress1MyAccount' is generic and does not clearly describe the specific scenario being tested. The 'for' loop with an empty condition and a hardcoded timeout of 90 seconds is a common but poorly structured pattern for waiting; it mixes timeout logic with test flow and uses an infinite loop with a break condition that is not explicit. The action granularity is reasonable, with one main action per line ('selenium.open', 'loadRequiredJavaScriptModules'), but the missing closing braces and incomplete code disrupt reading flow. The structure is somewhat disorganized due to the abrupt start and lack of encapsulation of the wait logic into a helper method. Overall, the code is functional but not highly readable, scoring low due to unclear intent, awkward loop structure, and incomplete presentation.
Run 3
The code snippet shows a test class with unclear structure and incomplete logic. The class name 'AddAddress1MyAccountTest' is verbose but not descriptive of the test scenario. The method 'testAddAddress1MyAccount' lacks clarity about what specific behavior is being tested. The infinite for-loop with a timeout pattern is a common but convoluted way to wait for conditions - it's nested with an if-check that breaks the flow. The loop variable 'second' is poorly named and the 90-second hardcoded timeout is a magic number. The code abruptly ends mid-loop, suggesting incomplete code. Missing closing braces make it difficult to assess the full structure. While selenium.open and loadRequiredJavaScriptModules are clear actions, the overall reading flow is disrupted by the artificial timeout loop pattern. Better approaches would use explicit waits or helper methods for clarity.
Run 1
Code Structure: The class and test method provide basic organization, but the fragment starts with an unmatched comment terminator and ends without closing braces. Nesting: Class, method, loop, and conditional create moderate nesting. Clarity of intent: Names suggest an account-address test, but the visible code only opens a page, loads modules, and checks a timeout; no address action is shown. Code length: The excerpt is short, though incomplete. Action granularity: Each statement performs one action, making individual lines easy to read. Reading flow: Setup followed by a waiting loop is understandable, but the loop has no visible exit condition, delay, or success check, and the abrupt ending interrupts comprehension.
Run 2
Code Structure: The class and test method provide logical organization, but the fragment begins with a stray comment terminator and ends with unclosed blocks. Nesting: The method, loop, and conditional introduce moderate nesting. Clarity of intent: Opening the home page and loading JavaScript modules are clear, but the test name is awkward and the loop's purpose is unclear without its remaining body. Code length: The visible code is concise, though incomplete. Action granularity: Each statement performs a single action, making individual lines easy to understand. Reading flow: Indentation and spacing support sequential reading, but the abrupt boundaries and unexplained timeout value interrupt comprehension.
Run 3
Code Structure: The class and test method provide logical organization, but the snippet starts with a stray comment terminator and ends without closing braces. Nesting: Class, method, loop, and conditional create moderate nesting. Clarity of intent: Opening a page and loading JavaScript are clear, but the unfinished loop lacks a visible success condition or exit; the address-test naming is not supported by the shown actions. Code length: Short and mostly concise, though incomplete rather than fully economical. Action granularity: Each statement performs one action, making individual operations easy to follow. Reading flow: Consistent indentation and blank lines aid scanning, but the abrupt boundaries and missing loop body prevent a coherent understanding of the test.