microsoft / ExpressivePixels
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • 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...
Duplication Overall
  • 15% duplication:
    • 12,460 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,991 duplicated lines
  • 140 duplicates
system15% (1,991 lines)
Duplication per Extension
cpp21% (1,148 lines)
h17% (364 lines)
c19% (321 lines)
cs10% (80 lines)
hpp6% (40 lines)
xaml8% (32 lines)
py<1% (6 lines)
Duplication per Component (primary)
Firmware/Platform_Arduino57% (631 lines)
Firmware/Platform_NordicSDK23% (542 lines)
Firmware/Arduino100% (256 lines)
Firmware/Segger19% (236 lines)
Firmware/ExpressivePixelsCore3% (120 lines)
Windows/ExpressivePixelsActivator9% (112 lines)
Firmware/ExpressivePixelsMIDI3% (40 lines)
Firmware/Device_Nordic52840DK_SeggerEmbeddedStudio12% (30 lines)
Firmware/Device_Nordic52840DK_SeggerEmbeddedStudio Minimal25% (18 lines)
Firmware/RaspberryPi<1% (6 lines)
Firmware0% (0 lines)

Duplication Between Components (50+ lines)

G Firmware/Platform_Arduino Firmware/Platform_Arduino Firmware/Platform_NordicSDK Firmware/Platform_NordicSDK Firmware/Platform_Arduino--Firmware/Platform_NordicSDK 782 Firmware/Arduino Firmware/Arduino Firmware/Arduino--Firmware/Platform_Arduino 512 Firmware/Arduino--Firmware/Platform_NordicSDK 66

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 140 duplicates...
Size#FoldersFilesLinesCode
106 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitRGBMatrix_EPXDriver.cpp
AdafruitRGBMatrix_EPXDriver.cpp
6:207 (100%)
6:207 (100%)
view
43 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitDotStar_EPXDriver.cpp
AdafruitDotStar_EPXDriver.cpp
6:112 (100%)
6:112 (100%)
view
43 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitNeoPixel_EPXDriver.cpp
AdafruitNeoPixel_EPXDriver.cpp
6:112 (100%)
6:112 (100%)
view
39 x 2 Firmware/Segger
Firmware/Segger
SEGGER_RTT.c
SEGGER_RTT.c
539:600 (5%)
633:691 (5%)
view
38 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Settings.cpp
EPXPlatform_Settings.cpp
45:113 (71%)
46:114 (71%)
view
23 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Runtime.cpp
EPXPlatform_Runtime.cpp
78:116 (19%)
92:130 (14%)
view
22 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_CBatteryMonitor.cpp
EPXPlatform_CBatteryMonitor.cpp
102:124 (53%)
268:290 (21%)
view
22 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitRGBMatrix_EPXDriver.h
AdafruitRGBMatrix_EPXDriver.h
11:38 (100%)
11:38 (100%)
view
21 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitNeoPixel_EPXDriver.h
AdafruitNeoPixel_EPXDriver.h
11:40 (100%)
11:40 (100%)
view
21 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitDotStar_EPXDriver.h
AdafruitDotStar_EPXDriver.h
11:40 (100%)
11:40 (100%)
view
21 x 2 Firmware/Segger
Firmware/Segger
SEGGER_RTT.c
SEGGER_RTT.c
989:1024 (3%)
1064:1099 (3%)
view
20 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Runtime.cpp
EPXPlatform_Runtime.cpp
242:277 (17%)
312:346 (12%)
view
20 x 2 Firmware/Platform_NordicSDK
Firmware/Platform_NordicSDK
EPXPlatform_SPIClass.cpp
EPXPlatform_SPIClass.cpp
114:138 (16%)
147:171 (16%)
view
18 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_BLE.h
EPXPlatform_BLE.h
17:42 (75%)
18:46 (75%)
view
16 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_CBatteryMonitor.h
EPXPlatform_CBatteryMonitor.h
5:25 (72%)
12:32 (57%)
view
14 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_GPIO.h
EPXPlatform_GPIO.h
7:32 (100%)
12:37 (100%)
view
14 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Runtime.cpp
EPXPlatform_Runtime.cpp
220:236 (12%)
285:301 (8%)
view
13 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitDotStar_EPXDriver.h
AdafruitNeoPixel_EPXDriver.h
19:35 (61%)
19:35 (61%)
view
13 x 2 Firmware/Arduino
Firmware/Arduino
AdafruitDotStar_EPXDriver.h
AdafruitNeoPixel_EPXDriver.h
19:35 (61%)
19:35 (61%)
view
13 x 2 Firmware/Platform_Arduino
Firmware/Platform_Arduino
AdafruitDotStar_EPXDriver.h
AdafruitNeoPixel_EPXDriver.h
19:35 (61%)
19:35 (61%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 27 unit duplicates...
Size#FoldersFilesLinesCode
27 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Settings.cpp
EPXPlatform_Settings.cpp
83:114 
84:115 
view
23 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_CBatteryMonitor.cpp
EPXPlatform_CBatteryMonitor.cpp
102:125 
268:291 
view
19 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Settings.cpp
EPXPlatform_Settings.cpp
59:79 
60:80 
view
16 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Runtime.cpp
EPXPlatform_Runtime.cpp
101:117 
115:131 
view
14 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Runtime.cpp
EPXPlatform_Runtime.cpp
242:260 
312:330 
view
12 x 9 Firmware/Arduino
Firmware/Arduino
Firmware/Arduino
Firmware/Platform_Arduino
Firmware/Platform_Arduino
Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
Firmware/Platform_NordicSDK
Firmware/Platform_NordicSDK
AdafruitDotStar_EPXDriver.cpp
AdafruitNeoPixel_EPXDriver.cpp
AdafruitRGBMatrix_EPXDriver.cpp
AdafruitDotStar_EPXDriver.cpp
AdafruitNeoPixel_EPXDriver.cpp
AdafruitRGBMatrix_EPXDriver.cpp
Adafruit_NeopixelDriver.cpp
CWS2812-I2SDriver.cpp
CWS2812-SPIDriver.cpp
65:77 
65:77 
161:173 
65:77 
65:77 
161:173 
72:84 
80:92 
84:96 
view
12 x 2 Firmware/Device_Nordic52...ddedStudio Minimal
Firmware/Device_Nordic52840DK_SeggerEmbeddedStudio
main.c
main.c
36:52 
39:55 
view
12 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_GPIO.cpp
EPXPlatform_GPIO.cpp
55:67 
61:74 
view
12 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Runtime.cpp
EPXPlatform_Runtime.cpp
265:278 
334:347 
view
11 x 2 Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
EPXPlatform_Settings.cpp
EPXPlatform_Settings.cpp
24:36 
24:36 
view
10 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitDotStar_EPXDriver.cpp
AdafruitDotStar_EPXDriver.cpp
81:93 
81:93 
view
10 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitDotStar_EPXDriver.cpp
AdafruitDotStar_EPXDriver.cpp
98:113 
98:113 
view
10 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitNeoPixel_EPXDriver.cpp
AdafruitNeoPixel_EPXDriver.cpp
81:93 
81:93 
view
10 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitNeoPixel_EPXDriver.cpp
AdafruitNeoPixel_EPXDriver.cpp
98:113 
98:113 
view
10 x 4 Firmware/Arduino
Firmware/Platform_Arduino
Firmware/Platform_NordicSDK
Firmware/Platform_NordicSDK
AdafruitRGBMatrix_EPXDriver.cpp
AdafruitRGBMatrix_EPXDriver.cpp
Adafruit_NeopixelDriver.cpp
CWS2812-I2SDriver.cpp
177:188 
177:188 
88:99 
96:107 
view
10 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitRGBMatrix_EPXDriver.cpp
AdafruitRGBMatrix_EPXDriver.cpp
193:208 
193:208 
view
10 x 2 Firmware/Platform_NordicSDK
Firmware/Platform_NordicSDK
Adafruit_NeopixelDriver.cpp
CWS2812-I2SDriver.cpp
104:119 
112:127 
view
9 x 2 Windows/ExpressivePixelsActivator/UWP
Windows/ExpressivePixelsActivator/WPF
MainPage.xaml.cs
MainWindow.xaml.cs
178:188 
258:268 
view
8 x 2 Firmware/Arduino
Firmware/Platform_Arduino
AdafruitRGBMatrix_EPXDriver.cpp
AdafruitRGBMatrix_EPXDriver.cpp
99:108 
99:108 
view
8 x 2 Firmware/ExpressivePixelsCore
Firmware/ExpressivePixelsCore
JsonStreamingParser.cpp
JsonStreamingParser.cpp
467:477 
479:489 
view