microsoft / GraphEngine
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
  • 18% duplication:
    • 58,540 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 10,552 duplicated lines
  • 941 duplicates
system18% (10,552 lines)
Duplication per Extension
cpp43% (6,275 lines)
cs12% (3,766 lines)
h6% (245 lines)
vcxproj91% (152 lines)
hpp1% (84 lines)
vstemplate24% (24 lines)
l1% (6 lines)
Duplication per Component (primary)
src/Trinity.TSL37% (7,257 lines)
src/Trinity.Core11% (1,046 lines)
src/Modules7% (664 lines)
src/Trinity.C6% (504 lines)
src/Trinity.Core.UnitTest25% (417 lines)
src/GraphEngine.DataImporter22% (307 lines)
src/Trinity.VSExtension14% (273 lines)
src/Trinity.C.UnitTest1% (84 lines)
cmake0% (0 lines)
src/BuildProfile0% (0 lines)
src/Trinity.Core.SmokeTest0% (0 lines)
tools0% (0 lines)
tools/versioning0% (0 lines)

Duplication Between Components (50+ lines)

G src/GraphEngine.DataImporter src/GraphEngine.DataImporter src/Trinity.Core src/Trinity.Core src/GraphEngine.DataImporter--src/Trinity.Core 534 src/Trinity.TSL src/Trinity.TSL src/Trinity.VSExtension src/Trinity.VSExtension src/Trinity.TSL--src/Trinity.VSExtension 177 src/Trinity.C src/Trinity.C src/Trinity.C--src/Trinity.Core 94

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 941 duplicates...
Size#FoldersFilesLinesCode
1350 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
844:2458 (46%)
862:2473 (46%)
view
488 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
2842:3655 (16%)
2878:3692 (16%)
view
267 x 2 src/GraphEngine.DataImpo...raphEngine.DataImporter
src/Trinity.Core/Utilities/IO
CodeWriter.cs
CodeWriter.cs
10:520 (99%)
14:524 (100%)
view
245 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
572:841 (8%)
590:859 (8%)
view
127 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
378:526 (4%)
396:544 (4%)
view
100 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
parser.tab.cpp
parser.tab.h
98:263 (7%)
40:205 (100%)
view
85 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
2458:2642 (2%)
2480:2668 (2%)
view
73 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
3860:4037 (2%)
3899:4078 (2%)
view
73 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
4213:4381 (2%)
4254:4422 (2%)
view
72 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
4044:4208 (2%)
4085:4249 (2%)
view
64 x 2 src/Trinity.VSExtension/Trinity.TSL.ManagedWrapper
src/Trinity.VSExtension/Trinity.TSL.ManagedWrapper
vcxproj
Trinity.TSL.ManagedWrapper.VS2017.vcx...
Trinity.TSL.ManagedWrapper.VS2019.vcx...
25:103 (77%)
26:104 (76%)
view
59 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.VSExtension/Trinity.TSL.ManagedWrapper
parser.tab.cpp
Trinity.TSL.WrappedTokenType.h
122:180 (4%)
6:64 (95%)
view
59 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.VSExtension/Trinity.TSL.ManagedWrapper
parser.tab.h
Trinity.TSL.WrappedTokenType.h
64:122 (59%)
6:64 (95%)
view
44 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
302:377 (1%)
314:392 (1%)
view
42 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
3690:3768 (1%)
3727:3805 (1%)
view
38 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
2664:2787 (1%)
2690:2822 (1%)
view
34 x 2 src/Trinity.Core/Trinity/Lib
src/Trinity.Core/Trinity/Lib
RWULock.cs
ReadWriteLock.cs
57:118 (33%)
72:134 (31%)
view
28 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
7:196 (<1%)
6:201 (<1%)
view
27 x 2 src/Trinity.TSL/Trinity.TSL.CodeTemplates
src/Trinity.TSL/Trinity.TSL.CodeTemplates
Index.cs
Index.cs
588:619 (8%)
631:662 (8%)
view
27 x 2 src/Trinity.TSL/Trinity.TSL.CodeTemplates
src/Trinity.TSL/Trinity.TSL.CodeTemplates
CellSelectors.cs
CellSelectors.cs
137:192 (8%)
232:287 (8%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 77 unit duplicates...
Size#FoldersFilesLinesCode
57 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
2517:2596 
2540:2619 
view
50 x 2 src/Trinity.TSL/Trinity.TSL.CodeTemplates
src/Trinity.TSL/Trinity.TSL.CodeTemplates
CellSelectors.cs
CellSelectors.cs
135:185 
230:280 
view
44 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
3887:3961 
3928:4002 
view
33 x 2 src/Trinity.TSL/Trinity.TSL.CodeTemplates
src/Trinity.TSL/Trinity.TSL.CodeTemplates
Index.cs
Index.cs
586:620 
629:663 
view
22 x 2 src/Trinity.Core/Trinity/Lib
src/Trinity.Core/Trinity/Lib
RWULock.cs
ReadWriteLock.cs
118:140 
146:168 
view
22 x 5 src/Trinity.TSL/Trinity....odeTemplates/Containers
src/Trinity.TSL/Trinity....CodeTemplates/Libraries
src/Trinity.TSL/Trinity....CodeTemplates/Libraries
src/Trinity.TSL/Trinity....CodeTemplates/Libraries
src/Trinity.TSL/Trinity....CodeTemplates/Libraries
List.cs
byteListAccessor.cs
doubleListAccessor.cs
intListAccessor.cs
longListAccessor.cs
459:481 
286:308 
335:357 
280:302 
310:332 
view
21 x 2 src/Trinity.Core/Network/Http
src/Trinity.Core/Network/Http
CommonHttpHandlers.cs
CommonHttpHandlers.cs
129:154 
157:182 
view
21 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
4233:4260 
4274:4301 
view
18 x 2 src/Trinity.Core/Trinity/Lib
src/Trinity.Core/Trinity/Lib
RWULock.cs
ReadWriteLock.cs
62:80 
78:96 
view
18 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
4283:4311 
4324:4352 
view
17 x 2 src/Trinity.Core/Trinity/Lib
src/Trinity.Core/Trinity/Lib
RWULock.cs
ReadWriteLock.cs
92:111 
108:127 
view
17 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
4420:4449 
4461:4490 
view
16 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
2370:2391 
2389:2410 
view
16 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
4135:4159 
4176:4200 
view
15 x 2 src/Trinity.TSL/Trinity....CodeTemplates/Libraries
src/Trinity.TSL/Trinity....CodeTemplates/Libraries
StringAccessor.cs
U8StringAccessor.cs
306:324 
194:212 
view
14 x 2 src/GraphEngine.DataImpo...e.DataImporter.UnitTest
src/GraphEngine.DataImpo...e.DataImporter.UnitTest
CsvParserUnitTest.cs
CsvParserUnitTest.cs
97:111 
114:128 
view
14 x 2 src/Trinity.C.UnitTest
src/Trinity.C.UnitTest
catch.hpp
catch.hpp
2482:2496 
2515:2529 
view
14 x 2 src/Trinity.Core/Network/Messaging/MessageArgs
src/Trinity.Core/Network/Messaging/MessageArgs
AsynReqArgs.cs
AsynReqRspArgs.cs
72:86 
73:87 
view
14 x 2 src/Trinity.TSL/Trinity.TSL.Parser
src/Trinity.TSL/Trinity.TSL.Parser
lex.flex.cpp
lex.linux.cpp
3986:4015 
4027:4056 
view
13 x 2 src/GraphEngine.DataImpo...raphEngine.DataImporter
src/Trinity.Core/Utilities/IO
CodeWriter.cs
CodeWriter.cs
457:470 
461:474 
view