microsoft / WinAppDriver
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:
    • 8,502 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,284 duplicated lines
  • 1,089 duplicates
system15% (1,284 lines)
Duplication per Extension
xaml24% (856 lines)
cs7% (295 lines)
cpp11% (61 lines)
vcxproj29% (42 lines)
h21% (30 lines)
Duplication per Component (primary)
ApplicationUnderTests/AppUIBasics/ControlPages24% (922 lines)
ApplicationUnderTests/AppUIBasics15% (149 lines)
Tools/UIRecorder/UIXPathLib16% (133 lines)
ApplicationUnderTests/AppUIBasics/Navigation36% (66 lines)
Tools/UIRecorder/UIRecorder<1% (14 lines)
ApplicationUnderTests/AppUIBasics/Common0% (0 lines)
ApplicationUnderTests/AppUIBasics/DataModel0% (0 lines)
ApplicationUnderTests/AppUIBasics/Properties0% (0 lines)
ApplicationUnderTests/Input0% (0 lines)
ApplicationUnderTests/Input/Properties0% (0 lines)
ApplicationUnderTests0% (0 lines)
Tools/UIRecorder/UIRecorderTemplate0% (0 lines)
Tools/UIRecorder0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,089 duplicates...
Size#FoldersFilesLinesCode
28 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
AppBarToggleButtonPage.xaml.cs
28:79 (58%)
28:79 (58%)
view
24 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
GridViewPage.xaml.cs
ListViewPage.xaml.cs
65:101 (54%)
65:101 (54%)
view
23 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
AppBarSeparatorPage.xaml.cs
28:70 (47%)
28:74 (79%)
view
23 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarSeparatorPage.xaml.cs
AppBarToggleButtonPage.xaml.cs
28:74 (79%)
28:70 (47%)
view
20 x 2 ApplicationUnderTests/AppUIBasics/Navigation
ApplicationUnderTests/AppUIBasics/Navigation
xaml
NavigationRootPage.xaml
NavigationRootPage.xaml
28:53 (14%)
140:165 (14%)
view
16 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
ButtonPage.xaml.cs
81:100 (33%)
29:48 (76%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
UiXPathLib.cpp
stdafx.cpp
1:29 (23%)
1:29 (75%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
stdafx.cpp
stdafx.h
1:29 (75%)
1:29 (46%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
stdafx.h
targetver.h
1:29 (46%)
1:29 (83%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
dllmain.cpp
stdafx.cpp
1:29 (45%)
1:29 (75%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
UiXPathLib.cpp
dllmain.cpp
1:29 (23%)
1:29 (45%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
UiXPathLib.cpp
stdafx.h
1:29 (23%)
1:29 (46%)
view
15 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
xaml
StackPanelPage.xaml
VariableSizedWrapGridPage.xaml
54:77 (31%)
46:69 (35%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
dllmain.cpp
stdafx.h
1:29 (45%)
1:29 (46%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
UiXPathLib.cpp
targetver.h
1:29 (23%)
1:29 (83%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
dllmain.cpp
targetver.h
1:29 (45%)
1:29 (83%)
view
15 x 2 Tools/UIRecorder/UIXPathLib
Tools/UIRecorder/UIXPathLib
stdafx.cpp
targetver.h
1:29 (75%)
1:29 (83%)
view
13 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
xaml
BorderPage.xaml
ListViewPage.xaml
64:82 (25%)
138:156 (13%)
view
13 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
xaml
CanvasPage.xaml
GridPage.xaml
63:81 (24%)
83:101 (18%)
view
13 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
xaml
GridPage.xaml
StackPanelPage.xaml
83:101 (18%)
59:77 (27%)
view
Duplicated Units
The list of top 9 duplicated units.
See data for all 9 unit duplicates...
Size#FoldersFilesLinesCode
22 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
ButtonPage.xaml.cs
79:103 
27:51 
view
22 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
GridViewPage.xaml.cs
ListViewPage.xaml.cs
82:104 
82:104 
view
13 x 3 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
AppBarSeparatorPage.xaml.cs
AppBarToggleButtonPage.xaml.cs
47:65 
47:65 
47:65 
view
11 x 3 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
AppBarSeparatorPage.xaml.cs
AppBarToggleButtonPage.xaml.cs
32:45 
32:45 
32:45 
view
11 x 2 Tools/UIRecorder/UIRecorder
Tools/UIRecorder/UIRecorder
GenerateXPath.cs
GenerateXPath.cs
204:215 
217:228 
view
10 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
AppBarButtonPage.xaml.cs
AppBarToggleButtonPage.xaml.cs
67:77 
67:77 
view
10 x 2 ApplicationUnderTests/AppUIBasics/ControlPages
ApplicationUnderTests/AppUIBasics/ControlPages
GridViewPage.xaml.cs
ListViewPage.xaml.cs
70:80 
70:80 
view
7 x 2 ApplicationUnderTests/AppUIBasics
ApplicationUnderTests/AppUIBasics
MainPage.xaml.cs
SearchResultsPage.xaml.cs
207:214 
312:319 
view
6 x 2 ApplicationUnderTests/AppUIBasics
ApplicationUnderTests/AppUIBasics
MainPage.xaml.cs
SearchResultsPage.xaml.cs
198:205 
297:304 
view