Sample
Dorn/java/119
Human rating uses the original dataset scale.
Scores
| Method | Score | Scale | Dataset rank (0–100) |
|---|---|---|---|
| Posnett | 0 | 0–1; higher is more readable | 48.5Δ 1.1 |
| Scalabrino | 0.364 | 0–1; higher is more readable | 26.0Δ 21.4 |
| Dorn | 0.864 | 0–1; higher is more readable | 89.4Δ 42.1 |
| Mi | 0.449 | 0–1; higher is more readable | 44.3Δ 3.1 |
| LLOC | 8 | Logical lines; fewer is more readable | 63.9Δ 16.6 |
| DeepSeek V4 Pro | 17.33 | 0–20; mean of three runs | 95.5Δ 48.2 |
| GPT-6.1 Sol | 16 | 0–20; mean of three runs | 66.0Δ 18.7 |
| BTTF | 0.441 | 0–1; higher is more readable | 31.8Δ 15.6 |
| Human | 3.32 | 1–5; original rating | 47.4 |
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. | 745.681 | −24.607 |
| Source linesThe number of non-empty source lines. | 30 | +12 |
| 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.891 | −7.337 |
Intercept 8.87 + feature contributions = -11.074 (log-odds).
Score = sigmoid(-11.074) = 0.
| Score | 0.364 |
|---|
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. | 61.871 | +1.045 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 28 | +0.231 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 62 | +0.196 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 31 | −0.061 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.101 | −0.04 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 29.841 | +0.007 |
Intercept 0.07 + feature contributions = 1.846 (log-odds).
Score = sigmoid(1.846) = 0.864.
| Score | 0.449 |
|---|
| Score | 8 |
|---|
Run 1
The code demonstrates excellent readability. It has a clear method with a single responsibility: filtering plugins based on permissions. The generic type parameter and method signature clearly convey intent. The loop is straightforward with no nested conditionals beyond a single if statement with two clear boolean checks. Variable naming is descriptive ('plugin', 'pluginSetting', 'visiblePlugins'). Action granularity is appropriate, with each meaningful operation on its own line. The code is concise but not cryptic - no unnecessary comments, no dead code. The only minor deductions: the throws clause adds slight overhead, and the method overload (second restrictPlugins) is partially shown, leaving some ambiguity about potential duplication. Overall, this follows clean code principles well.
Run 2
The code is well-structured and highly readable. It uses clear generic typing, meaningful method and variable names, and a single-purpose loop with flat control flow. The condition inside the loop is concise and communicates intent clearly. Each action (fetching the setting, checking permissions, adding the plugin) is logically separated. The only minor issue is the incomplete second method at the end, but the visible portion itself is exemplary.
Run 3
The code is well-structured and readable. It has a single public method with clear generic typing. The method name 'restrictPlugins' clearly conveys its purpose. Nesting is minimal with only one if condition inside a loop. The loop body is concise, performing plugin setting retrieval, checking active status and permission, then adding to a visible list. Each action is on its own line or logical grouping, improving readability. Variable names are descriptive ('visiblePlugins', 'pluginSetting'). The code is not unnecessarily long, though the generic method signature spans multiple lines due to formatting. Reading flow is natural: retrieve plugins, iterate, filter, return. Minor deductions for incomplete code sample (second method signature shown but not implemented) and the 'throws SystemException' requiring caller handling, which adds slight complexity but is necessary. Overall, clean and maintainable code.
Run 1
Code Structure: The utility class and filtering method are logically organized, but the second overload is incomplete. Nesting: A single loop containing one conditional keeps nesting shallow. Clarity of intent: Descriptive names such as visiblePlugins, isActive, and hasPermission clearly communicate filtering by activation and user permissions. Code length: The complete method is concise, without unnecessary logic. Action granularity: Each statement performs one action; multiline calls improve readability rather than combining unrelated operations. Reading flow: Initialization, iteration, filtering, and return follow a natural sequence. Consistent formatting helps, although wrapped declarations slightly interrupt scanning. The abruptly truncated overload prevents the snippet from being fully readable as a complete class.
Run 2
Code Structure: The utility class and filtering method are logically organized, although the second overload is incomplete. Nesting: A loop containing one conditional keeps nesting shallow and easy to follow. Clarity of intent: Descriptive names such as visiblePlugins, isActive, and hasPermission clearly express the filtering purpose. Code length: The implemented method is concise without unnecessary logic. Action granularity: Each statement performs a single clear action; multiline service calls and conditions remain readable. Reading flow: Initialization, iteration, eligibility checking, accumulation, and return follow a natural sequence. However, the snippet ends midway through another method declaration, interrupting the flow and preventing evaluation of the complete class.
Run 3
Code Structure: The completed method is logically organized, but the second overload is truncated, leaving the class incomplete. Nesting: A loop containing a single conditional keeps nesting shallow. Clarity of intent: Descriptive names and explicit activity and permission checks clearly communicate plugin filtering. Code length: The implementation is concise without unnecessary abstraction or repetition. Action granularity: Each statement performs one distinct action; wrapped lines improve readability of longer expressions. Reading flow: Initialization, iteration, eligibility checks, collection, and return follow a natural sequence. The unfinished overload and slightly verbose formatting reduce overall readability.