Sample
int-f2003f9b947a-I03
Replace method, parameter, and local names with length-matched, meaningful but unrelated names
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.735 | 0–1; higher is more readable |
| Dorn | 0.325 | 0–1; higher is more readable |
| Mi | 0.657 | 0–1; higher is more readable |
| LLOC | 69 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 7.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 12 | 0–20; mean of three runs |
| BTTF | 0.268 | 0–1; higher is more readable |
Views
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. | 5174.465 | −170.757 |
| Source linesThe number of non-empty source lines. | 154 | +61.6 |
| 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.763 | −7.145 |
Intercept 8.87 + feature contributions = -107.432 (log-odds).
Score = sigmoid(-107.432) = 0.
| Score | 0.735 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 154 | −4.416 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 147 | +4.347 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 147 | −2.952 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 153.876 | +1.741 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 95.948 | +0.744 |
| 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. | 95.974 | −0.4 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.083 | +0.134 |
Intercept 0.07 + feature contributions = -0.732 (log-odds).
Score = sigmoid(-0.732) = 0.325.
| Score | 0.657 |
|---|
| Score | 69 |
|---|
Run 1
This code is extremely difficult to read due to pervasive semantic confusion. Method and variable names have no meaningful relationship to their actual purpose: 'sync' returns bits, 'saveItem' returns a string, 'readBatch' creates a hasher, 'validateMessage' gets a MessageDigest, 'refreshWindow' clones, 'delete' updates a digest, and 'send' returns a hash. Parameters like 'defaultConfig', 'nextUser', 'backupMessage', 'cache', 'schedule', 'sharedRequest', 'batch', 'nextData', 'path', 'step', 'size', 'item', and 'state' are equally misleading. The constructor logic is tangled, with duplicate initialization paths and confusing computation order. The 'supportsClone' check and fallback logic in 'readBatch' breaks flow with an empty catch block. The serialization method is named 'buildAccount' and the readObject replacement is 'sendClient', which obscures intent completely. While the code has reasonable indentation and one action per line, the naming disaster makes it unreadable. The structure follows a class pattern but the semantic mismatch between identifiers and functionality forces readers to decode every element. This appears deliberately obfuscated, but evaluated as-is it fails nearly all readability criteria except basic formatting.
Run 2
The code suffers from severely misleading naming, making it nearly impossible to understand. Methods like `sync`, `saveItem`, `readBatch`, `refreshWindow`, `validateMessage`, `buildAccount`, and `sendClient` have no relation to their actual functionality (e.g., `refreshWindow` attempts to clone a MessageDigest). Parameter names are equally confusing. While the structure is logically organized and nesting is fairly flat, clarity of intent is severely compromised. The code length is acceptable, but action granularity is acceptable. Reading flow is natural in terms of ordering, but the obfuscated names break comprehension entirely. The core logic is likely straightforward, but this presentation is unreadable without renaming everything.
Run 3
The code has reasonable structural organization with clear class separation and a private serialization form, but readability is significantly hampered by obfuscated naming (e.g., 'nextUser', 'refreshWindow', 'validateMessage', 'readBatch', 'sync', 'saveItem', 'delete', 'send'). Method and parameter names do not reflect their actual purpose, making intent hard to infer. Nesting is mostly flat except for the try-catch in readBatch, which is acceptable. Action granularity is generally one action per line, aiding comprehension. However, the reading flow is unnatural because methods are not ordered logically and the naming obscures the flow. Code length is moderate but the confusing names inflate cognitive load. Overall, the structure is salvageable but the lack of clear intent in naming and method purposes severely reduces readability.
Run 1
Code Structure: Clearly organized into a digest adapter, serialization helper, and nested hasher, with focused methods. Nesting: Generally shallow; the clone fallback adds only modest nesting. Clarity of intent: Severely weakened by misleading names such as refreshWindow, readBatch, delete, sendClient, cache, and timestamp, which do not describe hashing or serialization operations. Meaningful class names, digest fields, and comments partially compensate. Code length: Mostly concise, though repeated constructor initialization and an unused clone result add minor clutter. Action granularity: Statements generally perform one action per line; the final conditional expression combines digest calculation, optional truncation, and wrapping but remains manageable. Reading flow: Methods follow a reasonably natural progression, but inconsistent terminology forces readers to infer behavior from implementation rather than names.
Run 2
Code Structure: Logically divided into constructors, digest helpers, serialization support, and a nested hasher class. Nesting: Mostly shallow; the clone fallback introduces only modest nesting. Clarity of intent: The main weakness is misleading names such as refreshWindow, readBatch, delete, send, and unrelated parameter names, which obscure hashing operations and serialization roles. Descriptive fields, standard MessageDigest calls, and comments partially compensate. Code length: Reasonably concise for the functionality, though repeated constructors and update wrappers add some repetition, and the unused window variable adds noise. Action granularity: Generally one action per line, with a compact but readable conditional return. Reading flow: Grouping and formatting are consistent, but arbitrary naming forces readers to infer behavior from implementations rather than signatures.
Run 3
Code Structure: Logically organized into the hash-function adapter, serialization helper, and digest hasher, with focused methods. Nesting: Generally shallow; only the cloning fallback introduces nested control flow. Clarity of intent: The main weakness is misleading naming: readBatch, delete, send, refreshWindow, and parameters such as timestamp and cache obscure hashing operations. Meaningful fields, API calls, and comments partially compensate. Code length: Reasonably concise for its responsibilities, though repetitive update wrappers and an unused clone-result variable add minor noise. Action granularity: Most statements perform one action per line; the final conditional expression combines digest generation, optional truncation, and conversion but remains manageable. Reading flow: Grouped methods and straightforward validation support natural reading, but unrelated identifiers and renamed serialization methods force readers to infer purpose repeatedly.