AVS
Duplication

Intro
  • For duplication, we look at places in code where there are six 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...
Duplication Overall
  • 7% duplication:
    • 13,812 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,051 duplicated lines
  • 57 duplicates
system7% (1,051 lines)
Duplication per Extension
js7% (999 lines)
scss5% (36 lines)
html8% (16 lines)
Duplication per Component (primary)
modules/monochrome11% (528 lines)
modules/core3% (137 lines)
bindings/python23% (120 lines)
examples/website-demo10% (115 lines)
website/src3% (72 lines)
examples/get-started31% (51 lines)
modules/layers1% (12 lines)
examples/xviz-playground1% (8 lines)
website3% (8 lines)
ROOT0% (0 lines)
modules/main0% (0 lines)

Duplication Between Components (50+ lines)

G examples/website-demo examples/website-demo bindings/python bindings/python examples/website-demo--bindings/python 190 examples/get-started examples/get-started examples/get-started--bindings/python 50

Download: SVG DOT (open online Graphviz editor)

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
Size#FoldersFilesLinesCode
95 x 2 examples/website-demo/src
bindings/python/streetsc...treetscapegl/components
toolbar.js
toolbar.js
27:143 (100%)
27:143 (100%)
view
33 x 2 modules/monochrome/src/shared/themes
modules/monochrome/src/shared/themes
dark-theme-primitives.js
light-theme-primitives.js
23:58 (70%)
23:58 (70%)
view
18 x 2 examples/get-started/src
bindings/python/streetsc...treetscapegl/components
constants.js
constants.js
29:49 (69%)
27:47 (72%)
view
15 x 2 modules/monochrome/src/table
modules/monochrome/src/table
table-row.js
tree-table-row.js
53:67 (39%)
81:95 (20%)
view
14 x 2 modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/toggle
index.js
index.js
105:121 (11%)
102:118 (11%)
view
14 x 2 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/radio-box
index.js
index.js
92:106 (11%)
37:51 (28%)
view
13 x 2 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/text-box
index.js
index.js
27:42 (10%)
27:42 (10%)
view
12 x 3 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/checkbox
index.js
index.js
index.js
103:116 (10%)
102:115 (9%)
105:118 (9%)
view
12 x 2 modules/core/src/components/hud
modules/core/src/components/hud
turn-signal-widget.js
traffic-light-widget.js
38:51 (25%)
54:67 (23%)
view
12 x 2 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/text-box
index.js
index.js
104:118 (10%)
104:121 (9%)
view
11 x 4 modules/monochrome/src/shared/text-box
modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/dropdown
index.js
index.js
index.js
index.js
104:119 (9%)
106:118 (9%)
103:115 (9%)
104:116 (9%)
view
11 x 3 modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/radio-box
modules/monochrome/src/shared/toggle
index.js
radio-box-item.js
index.js
108:121 (9%)
98:111 (10%)
105:118 (9%)
view
11 x 2 modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/radio-box
index.js
radio-box-item.js
76:87 (9%)
70:81 (10%)
view
11 x 2 modules/monochrome/src/metric-card
modules/monochrome/src/metric-card
stories.js
stories.js
81:91 (11%)
119:129 (11%)
view
11 x 2 modules/monochrome/src/shared/themes
modules/monochrome/src/shared/themes
index.js
index.js
47:63 (18%)
88:104 (18%)
view
9 x 5 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/radio-box
modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/text-box
modules/monochrome/src/shared/toggle
index.js
radio-box-item.js
index.js
index.js
index.js
106:116 (7%)
98:108 (8%)
108:118 (7%)
106:119 (7%)
105:115 (7%)
view
9 x 2 modules/monochrome/src/shared/slider
modules/monochrome/src/shared/toggle
index.js
index.js
67:75 (5%)
69:77 (7%)
view
9 x 2 modules/monochrome/src/metric-card
modules/monochrome/src/metric-card
chart.js
rich-metric-chart.js
178:189 (3%)
82:93 (6%)
view
9 x 2 modules/monochrome/src/playback-control
modules/monochrome/src/form
styled-components.js
styled-components.js
53:62 (13%)
36:45 (22%)
view
8 x 2 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/text-box
index.js
index.js
45:52 (6%)
45:52 (6%)
view
Most Frequent Duplicates
The list of 9 most frequently found duplicates.
Size#FoldersFilesLinesCode
6 x 6 modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/button
modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/text-box
modules/monochrome/src/shared/radio-box
index.js
index.js
index.js
index.js
index.js
radio-box-item.js
112:118 (4%)
103:109 (6%)
110:116 (5%)
109:115 (4%)
110:119 (4%)
102:108 (5%)
view
9 x 5 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/radio-box
modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/text-box
modules/monochrome/src/shared/toggle
index.js
radio-box-item.js
index.js
index.js
index.js
106:116 (7%)
98:108 (8%)
108:118 (7%)
106:119 (7%)
105:115 (7%)
view
6 x 4 modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/slider
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/radio-box
index.js
index.js
index.js
radio-box-item.js
113:120 (4%)
129:136 (3%)
110:117 (4%)
103:110 (5%)
view
11 x 4 modules/monochrome/src/shared/text-box
modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/dropdown
index.js
index.js
index.js
index.js
104:119 (9%)
106:118 (9%)
103:115 (9%)
104:116 (9%)
view
6 x 4 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/text-box
modules/monochrome/src/shared/radio-box
modules/monochrome/src/shared/toggle
stories.js
stories.js
stories.js
stories.js
44:52 (28%)
38:46 (37%)
44:52 (28%)
38:46 (40%)
view
11 x 3 modules/monochrome/src/shared/checkbox
modules/monochrome/src/shared/radio-box
modules/monochrome/src/shared/toggle
index.js
radio-box-item.js
index.js
108:121 (9%)
98:111 (10%)
105:118 (9%)
view
12 x 3 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/checkbox
index.js
index.js
index.js
103:116 (10%)
102:115 (9%)
105:118 (9%)
view
7 x 3 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/radio-box
modules/monochrome/src/shared/checkbox
index.js
radio-box-item.js
index.js
81:88 (5%)
74:81 (6%)
80:87 (5%)
view
7 x 3 modules/monochrome/src/shared/dropdown
modules/monochrome/src/shared/toggle
modules/monochrome/src/shared/radio-box
stories.js
stories.js
stories.js
43:52 (33%)
37:46 (46%)
43:52 (33%)
view