Duplication Overall
- 6% duplication:
- 12,840 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 853 duplicated lines
- 94 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 41 | x 2 | packages/spg/src/spg/utilspackages/stageassets/src/stageassets | 19:72 (100%)19:72 (100%) | view | |
| 20 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/spg/src/spg/utils | 140:177 (10%)329:366 (12%) | view | |
| 17 | x 2 | packages/spg/src/spg/PatternGeneratorspackages/spg/src/spg/PatternGenerators | 372:406 (5%)417:451 (5%) | view | |
| 15 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 752:768 (2%)784:800 (2%) | view | |
| 14 | x 2 | packages/open_vp_cal/src/open_vp_cal/widgetspackages/open_vp_cal/src/open_vp_cal/widgets | 457:478 (1%)573:594 (1%) | view | |
| 14 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 910:924 (1%)1037:1050 (1%) | view | |
| 13 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 391:403 (5%)434:446 (5%) | view | |
| 13 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 911:924 (1%)988:1000 (1%) | view | |
| 13 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 988:1000 (1%)1038:1050 (1%) | view | |
| 13 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 79:111 (9%)85:117 (9%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 159:189 (6%)53:83 (12%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 79:109 (8%)80:110 (13%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 85:115 (8%)114:144 (10%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 114:144 (10%)80:110 (13%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 220:240 (10%)167:187 (13%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 79:109 (8%)114:144 (10%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 85:115 (8%)80:110 (13%) | view | |
| 12 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 157:189 (6%)117:147 (8%) | view | |
| 11 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 973:985 (1%)1022:1034 (1%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 195:213 (6%)169:187 (10%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 224:242 (7%)222:240 (8%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 104:122 (13%)164:182 (12%) | view | |
| 10 | x 2 | packages/open_vp_cal/src/open_vp_cal/frameworkpackages/open_vp_cal/src/open_vp_cal/framework | 135:146 (10%)166:177 (4%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 195:213 (6%)224:242 (7%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 195:213 (6%)222:240 (8%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 224:242 (7%)169:187 (10%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 288:306 (5%)195:213 (6%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 288:306 (5%)169:187 (10%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 288:306 (5%)224:242 (7%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 288:306 (5%)222:240 (8%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 164:182 (12%)224:242 (7%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 104:122 (13%)222:240 (8%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 164:182 (12%)222:240 (8%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 104:122 (13%)224:242 (7%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 164:182 (12%)195:213 (6%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 104:122 (13%)169:187 (10%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 164:182 (12%)169:187 (10%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 104:122 (13%)195:213 (6%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 288:306 (5%)164:182 (12%) | view | |
| 10 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 288:306 (5%)104:122 (13%) | view | |
| 9 | x 2 | packages/open_vp_cal/src/open_vp_cal/frameworkpackages/open_vp_cal/src/open_vp_cal/framework | 169:179 (2%)241:251 (2%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 262:280 (5%)113:131 (9%) | view | |
| 9 | x 2 | packages/stageassets/src/stageassetspackages/stageassets/src/stageassets | 218:238 (8%)278:298 (5%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 113:129 (10%)148:164 (10%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 198:216 (7%)147:165 (9%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 166:182 (11%)113:129 (10%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 106:122 (12%)148:164 (10%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 166:182 (11%)148:164 (10%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 106:122 (12%)113:129 (10%) | view | |
| 9 | x 2 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 171:187 (9%)148:164 (10%) | view |
Most Frequent Duplicates
The list of 28 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 9 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 175:182 (7%)180:187 (6%)115:122 (8%)235:242 (4%)122:129 (6%)299:306 (3%)206:213 (4%)157:164 (7%)233:240 (5%) | view | |
| 6 | x 9 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 174:181 (7%)179:186 (6%)114:121 (8%)234:241 (4%)121:128 (6%)298:305 (3%)205:212 (4%)156:163 (7%)232:239 (5%) | view | |
| 6 | x 9 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 167:180 (7%)172:185 (6%)107:120 (8%)227:240 (4%)114:127 (6%)291:304 (3%)198:211 (4%)149:162 (7%)225:238 (5%) | view | |
| 6 | x 9 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 166:178 (7%)171:183 (6%)106:118 (8%)226:238 (4%)113:125 (6%)290:302 (3%)197:209 (4%)148:160 (7%)224:236 (5%) | view | |
| 6 | x 7 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 164:176 (7%)169:181 (6%)104:116 (8%)224:236 (4%)288:300 (3%)195:207 (4%)222:234 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 93:104 (4%)94:105 (6%)99:110 (4%)128:139 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 164:178 (4%)147:161 (6%)184:198 (4%)198:212 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 95:109 (4%)96:110 (6%)101:115 (4%)130:144 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 79:93 (4%)80:94 (6%)85:99 (4%)114:128 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 87:101 (4%)88:102 (6%)93:107 (4%)122:136 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 85:96 (4%)86:97 (6%)91:102 (4%)120:131 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 88:103 (4%)89:104 (6%)94:109 (4%)123:138 (5%) | view | |
| 6 | x 4 | packages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGeneratorspackages/spg_icvfxpatter...terns/PatternGenerators | 80:95 (4%)81:96 (6%)86:101 (4%)115:130 (5%) | view | |
| 6 | x 4 | packages/open_vp_cal/src/open_vp_cal/widgetspackages/open_vp_cal/src/open_vp_cal/widgetspackages/open_vp_cal/src/open_vp_cal/widgetspackages/open_vp_cal/src/open_vp_cal/widgets | 634:644 (<1%)726:736 (<1%)806:816 (<1%)896:906 (<1%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 913:918 (<1%)990:995 (<1%)1040:1045 (<1%) | view | |
| 6 | x 3 | packages/spg/src/spg/PatternGeneratorspackages/stageassets/src/stageassetspackages/stageassets/src/stageassets | 256:269 (2%)220:230 (5%)280:290 (3%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 918:924 (<1%)995:1000 (<1%)1045:1050 (<1%) | view | |
| 6 | x 3 | packages/spg/src/spg/PatternGeneratorspackages/stageassets/src/stageassetspackages/stageassets/src/stageassets | 254:265 (2%)218:226 (5%)278:286 (3%) | view | |
| 6 | x 3 | packages/stageassets/src/stageassetspackages/stageassets/src/stageassetspackages/stageassets/src/stageassets | 93:108 (3%)281:296 (3%)50:65 (5%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 917:922 (<1%)994:999 (<1%)1044:1049 (<1%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 912:917 (<1%)989:994 (<1%)1039:1044 (<1%) | view | |
| 6 | x 3 | packages/stageassets/src/stageassetspackages/stageassets/src/stageassetspackages/stageassets/src/stageassets | 283:298 (3%)349:364 (3%)223:238 (5%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 915:920 (<1%)992:997 (<1%)1042:1047 (<1%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 914:919 (<1%)991:996 (<1%)1041:1046 (<1%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 911:916 (<1%)988:993 (<1%)1038:1043 (<1%) | view | |
| 6 | x 3 | packages/spg/src/spg/PatternGeneratorspackages/spg/src/spg/PatternGeneratorspackages/spg/src/spg/PatternGenerators | 316:326 (2%)373:383 (2%)418:428 (2%) | view | |
| 6 | x 3 | packages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/corepackages/open_vp_cal/src/open_vp_cal/core | 916:921 (<1%)993:998 (<1%)1043:1048 (<1%) | view | |
| 6 | x 3 | packages/stageassets/src/stageassetspackages/stageassets/src/stageassetspackages/stageassets/src/stageassets | 92:106 (3%)280:294 (3%)49:63 (5%) | view |
Duplicated Units
The list of top 4 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 27 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/spg/src/spg/utils | 140:177 329:366 | view | |
| 14 | x 2 | packages/stageassets/src/stageassetspackages/spg/src/spg/utils | 43:59 43:59 | view | |
| 10 | x 2 | packages/stageassets/src/stageassetspackages/spg/src/spg/utils | 61:72 61:72 | view | |
| 8 | x 2 | packages/open_vp_cal/src/open_vp_cal/corepackages/spg/src/spg/utils | 85:97 314:326 | 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."