microsoft / prose
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
  • 41% duplication:
    • 5,734 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,387 duplicated lines
  • 343 duplicates
system41% (2,387 lines)
Duplication per Extension
cs53% (2,162 lines)
py12% (187 lines)
html25% (38 lines)
Duplication per Component (primary)
dsl-samples/tutorial97% (2,077 lines)
misc/CCSynth12% (187 lines)
api-samples/Extraction.Web20% (52 lines)
api-samples/Split.Text27% (25 lines)
api-samples/Transformation.Json17% (18 lines)
api-samples/Transformation.Text9% (14 lines)
misc/BenchmarkDriver3% (14 lines)
ROOT0% (0 lines)
api-samples/Extraction.Json0% (0 lines)
api-samples/Matching.Text0% (0 lines)
api-samples/Read.FlatFile0% (0 lines)
dsl-samples/MergeConflictsResolution0% (0 lines)
dsl-samples/ProseSample0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 343 duplicates...
Size#FoldersFilesLinesCode
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/part1c-complete/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part2b/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part2a-complete/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/part2a/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/part2b/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part2b/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part2a/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/part1c/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
96 x 2 dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part2a/ProseTutorial
Program.cs
Program.cs
1:162 (100%)
1:162 (100%)
view
Duplicated Units
The list of top 12 duplicated units.
See data for all 12 unit duplicates...
Size#FoldersFilesLinesCode
44 x 13 dsl-samples/tutorial/part1a-complete/ProseTutorial
dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
...
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
...
78:128 
78:128 
78:128 
78:128 
78:128 
78:128 
78:128 
78:128 
78:128 
78:128 
...
view
30 x 14 dsl-samples/tutorial/part1a-complete/ProseTutorial
dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
...
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
...
29:60 
29:60 
29:60 
29:60 
29:60 
29:60 
29:60 
29:60 
29:60 
29:60 
...
view
22 x 14 dsl-samples/tutorial/part1a-complete/ProseTutorial
dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
...
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
...
130:153 
130:153 
130:153 
130:153 
130:153 
130:153 
130:153 
130:153 
130:153 
130:153 
...
view
17 x 4 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
51:69 
51:69 
51:69 
63:81 
view
15 x 2 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
WitnessFunctions.cs
WitnessFunctions.cs
17:35 
17:35 
view
14 x 14 dsl-samples/tutorial/part1a-complete/ProseTutorial
dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
...
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
...
62:76 
62:76 
62:76 
62:76 
62:76 
62:76 
62:76 
62:76 
62:76 
62:76 
...
view
14 x 6 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
17:34 
17:34 
17:34 
17:34 
17:34 
29:46 
view
13 x 4 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
56:70 
77:91 
51:65 
66:80 
view
11 x 6 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
WitnessFunctions.cs
37:48 
37:48 
37:48 
37:48 
37:48 
49:60 
view
11 x 4 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
Semantics.cs
Semantics.cs
Semantics.cs
Semantics.cs
18:29 
18:29 
18:29 
18:29 
view
10 x 2 dsl-samples/tutorial/par...ProseTutorial/synthesis
dsl-samples/tutorial/par...ProseTutorial/synthesis
WitnessFunctions.cs
WitnessFunctions.cs
23:48 
51:65 
view
8 x 14 dsl-samples/tutorial/part1a-complete/ProseTutorial
dsl-samples/tutorial/part1a/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt1/ProseTutorial
dsl-samples/tutorial/par...-complete/ProseTutorial
dsl-samples/tutorial/part1b-attempt2/ProseTutorial
dsl-samples/tutorial/part1c-complete/ProseTutorial
dsl-samples/tutorial/part1c/ProseTutorial
dsl-samples/tutorial/part1d-complete/ProseTutorial
dsl-samples/tutorial/part1d/ProseTutorial
...
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
Program.cs
...
155:163 
155:163 
155:163 
155:163 
155:163 
155:163 
155:163 
155:163 
155:163 
155:163 
...
view