microsoft / AMBROSIA
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
  • 25% duplication:
    • 31,243 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 7,828 duplicated lines
  • 7,253 duplicates
system25% (7,828 lines)
Duplication per Extension
cs35% (7,194 lines)
ts3% (356 lines)
c20% (202 lines)
xaml11% (36 lines)
ps14% (28 lines)
yml18% (12 lines)
Duplication per Component (primary)
AmbrosiaTest48% (4,211 lines)
InternalImmortals46% (1,959 lines)
Clients4% (593 lines)
AmbrosiaLib15% (435 lines)
SharedAmbrosiaTools15% (233 lines)
GenericLogPicker21% (158 lines)
UWPLogPicker30% (76 lines)
ICGUI39% (74 lines)
ImmortalCoordinator43% (52 lines)
Ambrosia9% (19 lines)
DustBin19% (12 lines)
DevTools19% (6 lines)
AzureBlobsLogPicker0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G Clients Clients InternalImmortals InternalImmortals Clients--InternalImmortals 282 ICGUI ICGUI ICGUI--InternalImmortals 189 ImmortalCoordinator ImmortalCoordinator ImmortalCoordinator--InternalImmortals 132 SharedAmbrosiaTools SharedAmbrosiaTools UWPLogPicker UWPLogPicker SharedAmbrosiaTools--UWPLogPicker 91 AmbrosiaLib AmbrosiaLib AmbrosiaLib--Clients 52

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 7,253 duplicates...
Size#FoldersFilesLinesCode
67 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
ActiveActive_Test.cs
ActiveActive_Test.cs
728:809 (7%)
968:1049 (7%)
view
61 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
ActiveActive_Test.cs
ActiveActive_Test.cs
221:295 (6%)
387:461 (6%)
view
59 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
AMB_UnitTest.cs
ActiveActive_Test.cs
299:369 (16%)
387:457 (6%)
view
59 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
AMB_UnitTest.cs
ActiveActive_Test.cs
299:369 (16%)
221:291 (6%)
view
54 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
ActiveActive_Test.cs
ActiveActive_Test.cs
555:618 (5%)
735:798 (5%)
view
54 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
ActiveActive_Test.cs
ActiveActive_Test.cs
555:618 (5%)
975:1038 (5%)
view
48 x 2 AmbrosiaLib/Ambrosia
AmbrosiaLib/Ambrosia
xxHash.cs
xxHash.cs
319:391 (11%)
518:591 (11%)
view
46 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
EndToEndStressIntegration_Test.cs
EndToEndStressIntegration_Test.cs
457:520 (3%)
571:634 (3%)
view
45 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
JS_ActiveActive_Tests.cs
JS_ActiveActive_Tests.cs
332:390 (7%)
461:519 (7%)
view
44 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
ActiveActive_Test.cs
ActiveActive_Test.cs
221:271 (4%)
1233:1283 (4%)
view
44 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
AMB_UnitTest.cs
ActiveActive_Test.cs
299:349 (12%)
1233:1283 (4%)
view
44 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
ActiveActive_Test.cs
ActiveActive_Test.cs
387:437 (4%)
1233:1283 (4%)
view
43 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
EndToEndStressIntegration_Test.cs
EndToEndStressIntegration_Test.cs
225:285 (3%)
571:631 (3%)
view
43 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
EndToEndStressIntegration_Test.cs
EndToEndStressIntegration_Test.cs
225:285 (3%)
457:517 (3%)
view
40 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
EndToEndStressIntegration_Test.cs
EndToEndStressIntegration_Test.cs
347:400 (3%)
457:510 (3%)
view
40 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
InProc_Pipe_Test.cs
InProc_Pipe_Test.cs
547:600 (5%)
637:690 (5%)
view
40 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
EndToEndStressIntegration_Test.cs
EndToEndStressIntegration_Test.cs
347:400 (3%)
571:624 (3%)
view
40 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
EndToEndStressIntegration_Test.cs
EndToEndStressIntegration_Test.cs
225:278 (3%)
347:400 (3%)
view
39 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
JS_ActiveActive_Tests.cs
JS_ActiveActive_Tests.cs
206:257 (6%)
338:389 (6%)
view
39 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
JS_ActiveActive_Tests.cs
JS_ActiveActive_Tests.cs
206:257 (6%)
467:518 (6%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 38 unit duplicates...
Size#FoldersFilesLinesCode
24 x 2 ICGUI/ICGUI.UWP
InternalImmortals/XamarinSample/XamarinSample.UWP
App.xaml.cs
App.xaml.cs
40:80 
40:80 
view
18 x 2 Clients/C
InternalImmortals/NativeService
native_hello.c
service.c
48:73 
351:376 
view
18 x 2 SharedAmbrosiaTools
SharedAmbrosiaTools
SharedAmbrosiaTools.cs
SharedAmbrosiaTools.cs
237:255 
297:315 
view
17 x 2 SharedAmbrosiaTools
SharedAmbrosiaTools
SharedAmbrosiaTools.cs
SharedAmbrosiaTools.cs
260:277 
317:334 
view
16 x 2 InternalImmortals/Perfor...estInterruptible/Server
InternalImmortals/Perfor...estInterruptible/Server
Program.cs
Program.cs
69:86 
198:215 
view
15 x 2 SharedAmbrosiaTools
SharedAmbrosiaTools
SharedAmbrosiaTools.cs
SharedAmbrosiaTools.cs
279:294 
336:351 
view
13 x 4 Clients/CSharp/AmbrosiaLibCS
InternalImmortals/Perfor...osiaGeneratedAPI/latest
InternalImmortals/Xamari...mmortalGenerated/latest
InternalImmortals/Xamari...mpleCommAPIGened/latest
Immortal.cs
ImmortalSerializer.cs
ImmortalSerializer.cs
ImmortalSerializer.cs
1119:1132 
33:46 
31:44 
31:44 
view
12 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
BasicEXECalls_Test.cs
BasicEXECalls_Test.cs
25:40 
44:60 
view
12 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
BasicEXECalls_Test.cs
BasicEXECalls_Test.cs
64:80 
84:100 
view
12 x 2 InternalImmortals/Perfor...estInterruptible/Client
InternalImmortals/Perfor...estInterruptible/Server
Program.cs
Program.cs
324:338 
490:504 
view
11 x 2 Clients/AmbrosiaJS/Ambrosia-Node
Clients/AmbrosiaJS/TestApp-Node
PublisherFramework.template.ts
PublisherFramework.g.ts
28:40 
59:70 
view
11 x 4 Clients/CSharp/AmbrosiaLibCS
ImmortalCoordinator
InternalImmortals/UWPExample/GraphicalApp
InternalImmortals/UWPExample/GraphicalAppUWP
AmbrosiaFactory.cs
Program.cs
Form1.cs
MainPage.xaml.cs
51:62 
120:131 
162:173 
191:202 
view
10 x 2 GenericLogPicker
UWPLogPicker
GenericLogPicker.cs
UWPLogPicker.cs
745:755 
103:113 
view
10 x 2 SharedAmbrosiaTools
SharedAmbrosiaTools
SharedAmbrosiaTools.cs
SharedAmbrosiaTools.cs
488:498 
500:510 
view
9 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
JS_CodeGen_Neg_Tests.cs
JS_CodeGen_Neg_Tests.cs
120:132 
135:147 
view
9 x 2 GenericLogPicker
UWPLogPicker
GenericLogPicker.cs
UWPLogPicker.cs
726:735 
85:94 
view
8 x 2 AmbrosiaTest/AmbrosiaTest
AmbrosiaTest/AmbrosiaTest
JS_CodeGen_Neg_Tests.cs
JS_CodeGen_Neg_Tests.cs
67:77 
80:90 
view
8 x 2 InternalImmortals/UWPExample/GraphicalApp
InternalImmortals/UWPExample/GraphicalAppUWP
Form1.cs
MainPage.xaml.cs
125:133 
153:161 
view
8 x 2 UWPLogPicker
UWPLogPicker
UWPLogPicker.cs
UWPLogPicker.cs
115:125 
128:138 
view
7 x 2 AmbrosiaLib/Ambrosia
Clients/CSharp/AmbrosiaLibCS
Program.cs
EventBuffer.cs
470:477 
109:116 
view