guardian/interactive-uk-cartogram-2015
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 34% duplication:
- 5,366 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 1,876 duplicated lines
- 163 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 202 | x 2 | src/js/cartogramssrc/js/cartograms | 99:400 (48%)99:400 (47%) | view | |
| 102 | x 2 | src/js/cartogramssrc/js/cartograms | 523:706 (24%)537:720 (24%) | view | |
| 70 | x 2 | src/js/cartogramssrc/js/cartograms | 310:399 (16%)376:464 (18%) | view | |
| 70 | x 2 | src/js/cartogramssrc/js/cartograms | 310:399 (16%)376:464 (18%) | view | |
| 61 | x 2 | src/js/cartogramssrc/js/cartograms | 1:96 (14%)1:96 (14%) | view | |
| 54 | x 2 | src/js/cartogramssrc/js/cartograms | 453:523 (11%)376:445 (13%) | view | |
| 54 | x 2 | src/js/cartogramssrc/js/cartograms | 453:523 (11%)310:379 (13%) | view | |
| 54 | x 2 | src/js/cartogramssrc/js/cartograms | 453:523 (11%)310:379 (12%) | view | |
| 49 | x 2 | src/js/cartogramssrc/js/cartograms | 1:79 (10%)1:79 (12%) | view | |
| 45 | x 2 | src/js/cartogramssrc/js/cartograms | 660:761 (9%)576:677 (11%) | view | |
| 38 | x 2 | src/js/cartogramssrc/js/cartograms | 557:614 (8%)479:536 (9%) | view | |
| 34 | x 2 | src/js/cartogramssrc/js/cartograms | 9:65 (7%)7:63 (8%) | view | |
| 34 | x 2 | src/js/cartogramssrc/js/cartograms | 7:63 (8%)9:65 (8%) | view | |
| 34 | x 2 | src/js/cartogramssrc/js/cartograms | 7:63 (8%)9:65 (8%) | view | |
| 34 | x 2 | src/js/cartogramssrc/js/cartograms | 9:65 (7%)7:63 (8%) | view | |
| 32 | x 2 | src/js/cartogramssrc/js/cartograms | 398:448 (6%)321:371 (8%) | view | |
| 25 | x 2 | src/js/cartogramssrc/js/cartograms | 16:54 (5%)14:50 (6%) | view | |
| 25 | x 2 | src/js/cartogramssrc/js/cartograms | 16:54 (6%)14:50 (6%) | view | |
| 25 | x 2 | src/js/cartogramssrc/js/cartograms | 14:52 (6%)14:50 (6%) | view | |
| 25 | x 2 | src/js/cartogramssrc/js/cartograms | 14:52 (5%)14:50 (6%) | view | |
| 24 | x 2 | src/js/cartogramssrc/js/cartograms | 193:224 (5%)186:220 (5%) | view | |
| 24 | x 2 | src/js/cartogramssrc/js/cartograms | 193:224 (5%)186:220 (5%) | view | |
| 20 | x 2 | src/js/cartogramssrc/js/cartograms | 624:658 (4%)543:574 (5%) | view | |
| 19 | x 2 | src/js/cartogramssrc/js/cartograms | 526:551 (4%)448:473 (4%) | view | |
| 19 | x 2 | srcsrc/embed | 1:28 (100%)1:28 (100%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 267:287 (3%)375:395 (3%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 193:214 (3%)205:225 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 667:689 (3%)610:632 (3%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 695:729 (3%)641:674 (3%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 151:173 (3%)165:187 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 186:207 (3%)205:225 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 624:646 (3%)583:605 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 655:688 (3%)611:645 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 151:173 (3%)165:187 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 186:207 (3%)205:225 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 610:632 (3%)583:605 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 641:674 (3%)611:645 (4%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 667:689 (3%)624:646 (3%) | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 695:729 (3%)655:688 (3%) | view | |
| 15 | x 2 | src/js/cartogramssrc/js/cartograms | 526:542 (3%)382:399 (3%) | view | |
| 15 | x 2 | src/js/cartogramssrc/js/cartograms | 526:542 (3%)382:399 (3%) | view | |
| 14 | x 2 | src/js/commonsrc/js/common | 99:114 (7%)122:137 (7%) | view | |
| 14 | x 2 | src/js/cartogramssrc/js/cartograms | 161:182 (2%)167:187 (3%) | view | |
| 14 | x 2 | src/js/cartogramssrc/js/cartograms | 161:182 (2%)153:173 (3%) | view | |
| 14 | x 2 | src/js/cartogramssrc/js/cartograms | 560:584 (3%)523:547 (3%) | view | |
| 14 | x 2 | src/js/cartogramssrc/js/cartograms | 546:570 (3%)523:547 (3%) | view | |
| 14 | x 2 | src/js/cartogramssrc/js/cartograms | 161:182 (2%)153:173 (3%) | view | |
| 13 | x 2 | src/css/modulessrc/css/modules | 121:134 (6%)185:198 (6%) | view | |
| 13 | x 2 | src/js/cartogramssrc/js/cartograms | 98:116 (2%)108:126 (3%) | view | |
| 13 | x 2 | src/js/cartogramssrc/js/cartograms | 243:260 (3%)311:325 (3%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 8 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 576:582 (1%)552:558 (1%)590:596 (1%)631:637 (1%)599:605 (1%)640:646 (1%)683:689 (1%)626:632 (1%) | view | |
| 6 | x 8 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 575:581 (1%)551:557 (1%)589:595 (1%)630:636 (1%)598:604 (1%)639:645 (1%)682:688 (1%)625:631 (1%) | view | |
| 6 | x 8 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 352:357 (1%)418:423 (1%)352:357 (1%)495:500 (1%)454:459 (1%)388:393 (1%)532:537 (1%)388:393 (1%) | view | |
| 6 | x 6 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 574:580 (1%)597:603 (1%)588:594 (1%)681:687 (1%)638:644 (1%)624:630 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 224:231 (1%)232:239 (1%)224:231 (1%)272:279 (1%)380:387 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 44:51 (1%)46:53 (1%)44:51 (1%)46:53 (1%)43:49 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 35:45 (1%)37:47 (1%)35:45 (1%)37:47 (1%)33:44 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 41:47 (1%)43:49 (1%)41:47 (1%)43:49 (1%)40:46 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 19:28 (1%)21:30 (1%)19:28 (1%)21:30 (1%)19:26 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 18:26 (1%)20:28 (1%)18:26 (1%)20:28 (1%)18:24 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 40:46 (1%)42:48 (1%)40:46 (1%)42:48 (1%)39:45 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 20:29 (1%)22:31 (1%)20:29 (1%)22:31 (1%)20:27 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 28:35 (1%)30:37 (1%)28:35 (1%)30:37 (1%)26:33 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 280:290 (1%)345:355 (1%)280:290 (1%)201:212 (1%)422:432 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 109:114 (1%)129:134 (1%)149:154 (1%)168:173 (1%)255:260 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 31:43 (1%)33:45 (1%)31:43 (1%)33:45 (1%)29:42 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 29:40 (1%)31:42 (1%)29:40 (1%)31:42 (1%)27:39 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 14:20 (1%)16:22 (1%)14:20 (1%)16:22 (1%)14:20 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 26:34 (1%)28:36 (1%)26:34 (1%)28:36 (1%)24:32 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 22:31 (1%)24:33 (1%)22:31 (1%)24:33 (1%)22:29 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 34:44 (1%)36:46 (1%)34:44 (1%)36:46 (1%)32:43 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 30:41 (1%)32:43 (1%)30:41 (1%)32:43 (1%)28:40 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 43:48 (1%)45:50 (1%)43:48 (1%)45:50 (1%)42:47 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 45:52 (1%)47:54 (1%)45:52 (1%)47:54 (1%)44:50 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 15:21 (1%)17:23 (1%)15:21 (1%)17:23 (1%)15:21 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 21:30 (1%)23:32 (1%)21:30 (1%)23:32 (1%)21:28 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 17:22 (1%)19:24 (1%)17:22 (1%)19:24 (1%)17:22 (1%) | view | |
| 6 | x 5 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 296:303 (1%)361:368 (1%)296:303 (1%)218:225 (1%)438:445 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 335:340 (1%)401:406 (1%)335:340 (1%)478:483 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 10:19 (1%)12:21 (1%)10:19 (1%)12:21 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 354:360 (1%)420:426 (1%)354:360 (1%)497:503 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 331:336 (1%)397:402 (1%)331:336 (1%)474:479 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 350:355 (1%)416:421 (1%)350:355 (1%)493:498 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 366:371 (1%)432:437 (1%)366:371 (1%)509:514 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 360:368 (1%)426:434 (1%)360:368 (1%)503:511 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 114:120 (1%)134:140 (1%)154:159 (1%)173:179 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 325:331 (1%)391:397 (1%)325:331 (1%)468:474 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 385:390 (1%)451:456 (1%)385:390 (1%)529:534 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 651:665 (1%)621:635 (1%)665:679 (1%)705:719 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 322:328 (1%)388:394 (1%)322:328 (1%)465:471 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 167:173 (1%)181:187 (1%)167:173 (1%)176:182 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 551:559 (1%)528:536 (1%)565:573 (1%)606:614 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 158:166 (1%)172:180 (1%)158:166 (1%)167:175 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 153:163 (1%)167:177 (1%)153:163 (1%)161:172 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 194:199 (1%)212:217 (1%)194:199 (1%)201:206 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 370:379 (1%)436:445 (1%)370:379 (1%)513:523 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 332:337 (1%)398:403 (1%)332:337 (1%)475:480 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 347:353 (1%)413:419 (1%)347:353 (1%)490:496 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 356:363 (1%)422:429 (1%)356:363 (1%)499:506 (1%) | view | |
| 6 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 664:671 (1%)634:643 (1%)678:685 (1%)718:727 (1%) | view |
Duplicated Units
The list of top 12 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 37 | x 2 | src/js/cartogramssrc/js/cartograms | 570:629 556:615 | view | |
| 22 | x 2 | src/js/cartogramssrc/js/cartograms | 280:316 280:316 | view | |
| 20 | x 4 | src/js/cartogramssrc/js/cartogramssrc/js/cartogramssrc/js/cartograms | 483:509 340:366 406:432 340:366 | view | |
| 19 | x 2 | src/js/cartogramssrc/js/cartograms | 630:653 616:639 | view | |
| 18 | x 2 | src/js/cartogramssrc/js/cartograms | 714:757 630:673 | view | |
| 17 | x 2 | src/js/cartogramssrc/js/cartograms | 674:714 660:700 | view | |
| 16 | x 2 | src/js/cartogramssrc/js/cartograms | 673:693 589:609 | view | |
| 13 | x 2 | src/js/cartogramssrc/js/cartograms | 98:114 108:124 | view | |
| 11 | x 2 | src/js/cartogramssrc/js/cartograms | 563:578 485:500 | view | |
| 6 | x 2 | srcsrc/embed | 4:11 4:11 | view | |
| 19 | x 2 | srcsrc/embed | 1:28 1:28 | view | |
| 6 | x 2 | srcsrc/embed | 14:26 14:26 | view |
About This Analysis
- For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
- Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
- You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."