microsoft / ProtocolTestFramework
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
  • 6% duplication:
    • 5,895 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 410 duplicated lines
  • 33 duplicates
system6% (410 lines)
Duplication per Extension
cs6% (382 lines)
css25% (14 lines)
html7% (14 lines)
Duplication per Component (primary)
src/TestFramework/Core/Adapters16% (154 lines)
src/TestFramework/Core4% (82 lines)
src/TestFramework/Core/Logging5% (57 lines)
src/TestFramework.AdapterConsole24% (41 lines)
src/TestFramework/Messages9% (32 lines)
src/PTFTestLogger/Resources12% (28 lines)
src/TestFramework/VSTS1% (8 lines)
src/TestFramework/VSTS/Checking2% (8 lines)
pipelines0% (0 lines)
src/PTFTestLogger0% (0 lines)
src0% (0 lines)
src/TestFramework/Core/Attributes0% (0 lines)
src/TestFramework/build0% (0 lines)

Duplication Between Components (50+ lines)

G src/TestFramework.AdapterConsole src/TestFramework.AdapterConsole src/TestFramework/Core/Adapters src/TestFramework/Core/Adapters src/TestFramework.AdapterConsole--src/TestFramework/Core/Adapters 82

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 33 duplicates...
Size#FoldersFilesLinesCode
41 x 2 src/TestFramework.AdapterConsole
src/TestFramework/Core/Adapters
ConsoleHelper.cs
AdapterProxyHelpers.cs
129:208 (40%)
60:139 (73%)
view
15 x 2 src/TestFramework/Core/Adapters
src/TestFramework/Core/Adapters
PowerShellAdapterProxy.cs
ShellAdapterProxy.cs
36:81 (5%)
39:84 (5%)
view
9 x 2 src/TestFramework/Core/Logging
src/TestFramework/Core/Logging
ApplicationLog.cs
LogProfileParser.cs
69:77 (25%)
91:99 (5%)
view
9 x 2 src/TestFramework/Core/Adapters
src/TestFramework/Core/Adapters
PowerShellAdapterProxy.cs
ShellAdapterProxy.cs
143:160 (3%)
142:159 (3%)
view
9 x 2 src/TestFramework/Core
src/TestFramework/Core/Logging
DefaultTestSite.cs
LogSink.cs
950:985 (1%)
263:298 (4%)
view
9 x 2 src/TestFramework/Core/Adapters
src/TestFramework/Core/Adapters
ManagedAdapterBase.cs
ManagedAdapterBase.cs
230:242 (6%)
270:282 (6%)
view
8 x 2 src/TestFramework/Core/Adapters
src/TestFramework/Core
ManagedAdapterBase.cs
DefaultTestSite.cs
77:94 (5%)
948:968 (1%)
view
8 x 2 src/TestFramework/VSTS
src/TestFramework/VSTS/Checking
AsynchronousErrorProcessor.cs
DefaultChecker.cs
202:214 (8%)
176:189 (2%)
view
8 x 2 src/TestFramework/Core/Logging
src/TestFramework/Core/Logging/Sinks
LogSink.cs
PipeSink.cs
658:665 (3%)
92:99 (13%)
view
8 x 2 src/TestFramework/Messages
src/TestFramework/Messages
ExpectedEvent.cs
ExpectedReturn.cs
59:75 (33%)
59:75 (33%)
view
8 x 2 src/TestFramework/Core
src/TestFramework/Core
DefaultTestSite.cs
DefaultTestSite.cs
531:543 (1%)
556:567 (1%)
view
8 x 2 src/TestFramework/Core
src/TestFramework/Core
ConfigurationReader.cs
ConfigurationReader.cs
632:639 (1%)
644:651 (1%)
view
8 x 2 src/TestFramework/Messages
src/TestFramework/Messages
ExpectedEvent.cs
ExpectedReturn.cs
21:42 (33%)
21:42 (33%)
view
8 x 2 src/TestFramework/Core/Logging
src/TestFramework/Core/Logging
LogSink.cs
LogSink.cs
469:476 (3%)
658:665 (3%)
view
8 x 2 src/PTFTestLogger/Resources
src/PTFTestLogger/Resources
casepage.css
index.html
19:27 (14%)
61:69 (5%)
view
8 x 2 src/TestFramework/Core/Logging
src/TestFramework/Core/Logging/Sinks
LogSink.cs
PipeSink.cs
469:476 (3%)
92:99 (13%)
view
7 x 2 src/TestFramework/Core/Adapters
src/TestFramework/Core/Adapters
PowerShellAdapterProxy.cs
ShellAdapterProxy.cs
162:181 (2%)
161:179 (2%)
view
7 x 2 src/TestFramework/Core/Logging
src/TestFramework/Core/Logging/Sinks
LogProfileParser.cs
PipeSink.cs
93:99 (4%)
93:99 (11%)
view
7 x 2 src/TestFramework/Core/Adapters
src/TestFramework/Core/Adapters
ManagedAdapterBase.cs
ManagedAdapterBase.cs
232:240 (5%)
368:377 (5%)
view
7 x 2 src/TestFramework/Core/Logging
src/TestFramework/Core/Logging
ApplicationLog.cs
LogSink.cs
71:77 (20%)
659:665 (3%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
70 x 2 src/TestFramework.AdapterConsole
src/TestFramework/Core/Adapters
ConsoleHelper.cs
AdapterProxyHelpers.cs
129:210 
60:141 
view
7 x 2 src/TestFramework/Core
src/TestFramework/Core
TestSiteProvider.cs
TestSiteProvider.cs
104:112 
114:122 
view