microsoft / uprove-csharp-sdk
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:
    • 15,736 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 958 duplicated lines
  • 79 duplicates
system6% (958 lines)
Duplication per Extension
cs6% (958 lines)
Duplication per Component (primary)
UProveCrypto4% (525 lines)
UProveUnitTest16% (272 lines)
UProveParams23% (118 lines)
UProveCrypto/Math4% (24 lines)
UProveSample8% (10 lines)
UProveTestVectors1% (9 lines)
UProveCrypto/Properties0% (0 lines)
UProveParams/Properties0% (0 lines)
UProveSample/Properties0% (0 lines)
UProveTestVectors/Properties0% (0 lines)
UProveUnitTest/Properties0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G UProveCrypto UProveCrypto UProveParams UProveParams UProveCrypto--UProveParams 198 UProveUnitTest UProveUnitTest UProveCrypto--UProveUnitTest 62 UProveParams--UProveUnitTest 62

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 79 duplicates...
Size#FoldersFilesLinesCode
56 x 2 UProveCrypto
UProveCrypto
SubgroupParameterSets.cs
SubgroupParameterSets.cs
1052:1110 (<1%)
5754:5812 (<1%)
view
55 x 2 UProveCrypto
UProveCrypto
ECParameterSets.cs
ECParameterSets.cs
852:908 (1%)
3305:3361 (1%)
view
55 x 2 UProveCrypto
UProveCrypto
ECParameterSets.cs
ECParameterSets.cs
852:908 (1%)
1914:1970 (1%)
view
55 x 2 UProveCrypto
UProveCrypto
ECParameterSets.cs
ECParameterSets.cs
1914:1970 (1%)
3305:3361 (1%)
view
55 x 2 UProveCrypto
UProveCrypto
ECParameterSets.cs
ECParameterSets.cs
3305:3361 (1%)
4139:4195 (1%)
view
55 x 2 UProveCrypto
UProveCrypto
ECParameterSets.cs
ECParameterSets.cs
1914:1970 (1%)
4139:4195 (1%)
view
55 x 2 UProveCrypto
UProveCrypto
ECParameterSets.cs
ECParameterSets.cs
852:908 (1%)
4139:4195 (1%)
view
52 x 2 UProveCrypto
UProveCrypto
SubgroupParameterSets.cs
SubgroupParameterSets.cs
1059:1110 (<1%)
2977:3028 (<1%)
view
52 x 2 UProveCrypto
UProveCrypto
SubgroupParameterSets.cs
SubgroupParameterSets.cs
2977:3028 (<1%)
5761:5812 (<1%)
view
49 x 2 UProveCrypto
UProveParams
SubgroupParameterSets.cs
SubgroupRecommendedParameters.cs
3046:3094 (<1%)
93:141 (19%)
view
33 x 2 UProveCrypto
UProveParams
SubgroupParameterSets.cs
SubgroupRecommendedParameters.cs
1128:1160 (<1%)
37:69 (13%)
view
31 x 2 UProveCrypto
UProveUnitTest
SubgroupParameterSets.cs
ProtocolHelperTest.cs
1128:1158 (<1%)
32:62 (54%)
view
31 x 2 UProveParams
UProveUnitTest
SubgroupRecommendedParameters.cs
ProtocolHelperTest.cs
37:67 (12%)
32:62 (54%)
view
17 x 2 UProveCrypto
UProveParams
SubgroupParameterSets.cs
SubgroupRecommendedParameters.cs
73:89 (<1%)
163:179 (6%)
view
17 x 2 UProveUnitTest
UProveUnitTest
EndToEndTest.cs
EndToEndTest.cs
201:217 (4%)
379:396 (4%)
view
15 x 2 UProveUnitTest
UProveUnitTest
EndToEndTest.cs
EndToEndTest.cs
116:130 (4%)
276:291 (4%)
view
11 x 2 UProveUnitTest
UProveUnitTest
IssuerTest.cs
ProverTest.cs
171:185 (11%)
125:139 (17%)
view
10 x 2 UProveParams
UProveSample
Formatter.cs
SDKSample.cs
231:250 (8%)
29:48 (8%)
view
9 x 2 UProveUnitTest
UProveUnitTest
FieldZqTest.cs
IssuerTest.cs
28:79 (8%)
32:80 (9%)
view
9 x 2 UProveUnitTest
UProveUnitTest
GroupTest.cs
IssuerTest.cs
37:88 (4%)
32:80 (9%)
view