microsoft / OpenAPI.NET
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
  • 20% duplication:
    • 10,568 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,123 duplicated lines
  • 188 duplicates
system20% (2,123 lines)
Duplication per Extension
cs16% (1,394 lines)
xaml31% (729 lines)
Duplication per Component (primary)
src/Microsoft.OpenApi.Workbench/Themes32% (729 lines)
src/Microsoft.OpenApi.Readers/V338% (432 lines)
src/Microsoft.OpenApi.Readers/V232% (395 lines)
src/Microsoft.OpenApi/Models22% (395 lines)
src/Microsoft.OpenApi.Readers13% (38 lines)
src/Microsoft.OpenApi.Hidi23% (38 lines)
src/Microsoft.OpenApi.Workbench16% (38 lines)
src/Microsoft.OpenApi.Readers/ParseNodes6% (28 lines)
src/Microsoft.OpenApi/Writers2% (24 lines)
src/Microsoft.OpenApi/Services<1% (6 lines)
ROOT0% (0 lines)
src0% (0 lines)
src/Microsoft.OpenApi.Readers/Exceptions0% (0 lines)
src/Microsoft.OpenApi.Readers/Interface0% (0 lines)
src/Microsoft.OpenApi.Readers/Properties0% (0 lines)
src/Microsoft.OpenApi.Readers/Services0% (0 lines)
src/Microsoft.OpenApi.Workbench/Properties0% (0 lines)
src/Microsoft.OpenApi/Any0% (0 lines)
src/Microsoft.OpenApi/Attributes0% (0 lines)
src/Microsoft.OpenApi0% (0 lines)
src/Microsoft.OpenApi/Exceptions0% (0 lines)
src/Microsoft.OpenApi/Expressions0% (0 lines)
src/Microsoft.OpenApi/Extensions0% (0 lines)
src/Microsoft.OpenApi/Interfaces0% (0 lines)
src/Microsoft.OpenApi/Properties0% (0 lines)
src/Microsoft.OpenApi/Validations0% (0 lines)

Duplication Between Components (50+ lines)

G src/Microsoft.OpenApi.Readers/V2 src/Microsoft.OpenApi.Readers/V2 src/Microsoft.OpenApi.Readers/V3 src/Microsoft.OpenApi.Readers/V3 src/Microsoft.OpenApi.Readers/V2--src/Microsoft.OpenApi.Readers/V3 753 src/Microsoft.OpenApi.Hidi src/Microsoft.OpenApi.Hidi src/Microsoft.OpenApi.Workbench src/Microsoft.OpenApi.Workbench src/Microsoft.OpenApi.Hidi--src/Microsoft.OpenApi.Workbench 76

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 188 duplicates...
Size#FoldersFilesLinesCode
55 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiSchemaDeserializer.cs
OpenApiSchemaDeserializer.cs
18:128 (42%)
19:128 (36%)
view
38 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Styles.WPF.xaml
Styles.WPF.xaml
435:496 (7%)
537:598 (7%)
view
38 x 2 src/Microsoft.OpenApi.Hidi
src/Microsoft.OpenApi.Workbench
StatsVisitor.cs
StatsVisitor.cs
1:85 (100%)
1:88 (100%)
view
36 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Core.Implicit.xaml
Styles.Shared.xaml
296:354 (5%)
633:691 (7%)
view
26 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Styles.Shared.xaml
Styles.WPF.xaml
130:167 (5%)
348:385 (5%)
view
24 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiV2Deserializer.cs
OpenApiV3Deserializer.cs
39:79 (29%)
39:79 (26%)
view
24 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Core.Implicit.xaml
Styles.Shared.xaml
780:812 (3%)
632:664 (5%)
view
24 x 2 src/Microsoft.OpenApi.Readers/V3
src/Microsoft.OpenApi.Readers/V3
OpenApiHeaderDeserializer.cs
OpenApiParameterDeserializer.cs
19:65 (52%)
45:91 (30%)
view
23 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiOperationDeserializer.cs
OpenApiOperationDeserializer.cs
19:58 (18%)
16:55 (36%)
view
23 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Core.Implicit.xaml
Metro.MSControls.Core.Implicit.xaml
296:327 (3%)
781:812 (3%)
view
22 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiSchemaDeserializer.cs
OpenApiSchemaDeserializer.cs
128:171 (16%)
146:189 (14%)
view
21 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiXmlDeserializer.cs
OpenApiXmlDeserializer.cs
39:76 (65%)
30:67 (72%)
view
19 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiV2Deserializer.cs
OpenApiV3Deserializer.cs
86:120 (23%)
83:116 (21%)
view
18 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Styles.WPF.xaml
Styles.WPF.xaml
688:713 (3%)
762:787 (3%)
view
17 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Toolkit.Implicit.xaml
Metro.MSControls.Toolkit.Implicit.xaml
645:670 (2%)
705:730 (2%)
view
16 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Styles.Shared.xaml
Styles.Shared.xaml
459:481 (3%)
550:572 (3%)
view
16 x 2 src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
OpenApiHeader.cs
OpenApiParameter.cs
134:178 (27%)
189:233 (18%)
view
15 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Toolkit.Implicit.xaml
Metro.MSControls.Toolkit.Implicit.xaml
615:638 (2%)
675:698 (2%)
view
15 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Core.Implicit.xaml
Metro.MSControls.Core.Implicit.xaml
101:118 (2%)
131:148 (2%)
view
14 x 2 src/Microsoft.OpenApi.Workbench/Themes/Metro
src/Microsoft.OpenApi.Workbench/Themes/Metro
xaml
Metro.MSControls.Core.Implicit.xaml
Metro.MSControls.Core.Implicit.xaml
615:633 (2%)
699:716 (2%)
view
Duplicated Units
The list of top 17 duplicated units.
See data for all 17 unit duplicates...
Size#FoldersFilesLinesCode
25 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiV2Deserializer.cs
OpenApiV3Deserializer.cs
39:66 
39:66 
view
14 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiSecurityRequirementDeserialize...
OpenApiSecurityRequirementDeserialize...
44:59 
43:58 
view
12 x 6 src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
OpenApiCallback.cs
OpenApiExample.cs
OpenApiHeader.cs
OpenApiLink.cs
OpenApiParameter.cs
OpenApiResponse.cs
66:80 
60:74 
92:106 
67:81 
141:155 
57:71 
view
12 x 3 src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
OpenApiHeader.cs
OpenApiParameter.cs
OpenApiResponse.cs
157:171 
212:226 
101:115 
view
12 x 2 src/Microsoft.OpenApi/Models
src/Microsoft.OpenApi/Models
OpenApiRequestBody.cs
OpenApiSecurityScheme.cs
51:65 
79:93 
view
11 x 2 src/Microsoft.OpenApi/Writers
src/Microsoft.OpenApi/Writers
OpenApiWriterExtensions.cs
OpenApiWriterExtensions.cs
285:296 
306:317 
view
10 x 2 src/Microsoft.OpenApi.Hidi
src/Microsoft.OpenApi.Workbench
StatsVisitor.cs
StatsVisitor.cs
76:86 
79:89 
view
9 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiTagDeserializer.cs
OpenApiTagDeserializer.cs
43:55 
43:55 
view
9 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiXmlDeserializer.cs
OpenApiXmlDeserializer.cs
66:77 
57:68 
view
7 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V2
OpenApiParameterDeserializer.cs
OpenApiParameterDeserializer.cs
207:215 
217:225 
view
7 x 2 src/Microsoft.OpenApi/Expressions
src/Microsoft.OpenApi/Expressions
PathExpression.cs
QueryExpression.cs
20:27 
20:27 
view
7 x 2 src/Microsoft.OpenApi/Writers
src/Microsoft.OpenApi/Writers
OpenApiWriterExtensions.cs
OpenApiWriterExtensions.cs
404:412 
414:422 
view
6 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiContactDeserializer.cs
OpenApiContactDeserializer.cs
44:52 
44:52 
view
6 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiExternalDocsDeserializer.cs
OpenApiExternalDocsDeserializer.cs
40:49 
41:50 
view
6 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiLicenseDeserializer.cs
OpenApiLicenseDeserializer.cs
38:47 
38:47 
view
6 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiPathItemDeserializer.cs
OpenApiPathItemDeserializer.cs
46:55 
55:64 
view
6 x 2 src/Microsoft.OpenApi.Readers/V2
src/Microsoft.OpenApi.Readers/V3
OpenApiPathsDeserializer.cs
OpenApiPathsDeserializer.cs
24:33 
24:33 
view