facebookresearch / asynchronousratchetingtree
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
  • 23% duplication:
    • 3,915 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 901 duplicated lines
  • 146 duplicates
system23% (901 lines)
Duplication per Extension
java22% (887 lines)
thrift32% (14 lines)
Duplication per Component (primary)
asynchronousratchetingtree/art/message/thrift29% (552 lines)
asynchronousratchetingtree/dhratchet/message/thrift44% (349 lines)
asynchronousratchetingtree/crypto0% (0 lines)
asynchronousratchetingtree0% (0 lines)
asynchronousratchetingtree/art/tree0% (0 lines)
asynchronousratchetingtree/art0% (0 lines)
asynchronousratchetingtree/art/message0% (0 lines)
asynchronousratchetingtree/dhratchet0% (0 lines)
asynchronousratchetingtree/dhratchet/message0% (0 lines)

Duplication Between Components (50+ lines)

G asynchronousratchetingtree/art/message/thrift asynchronousratchetingtree/art/message/thrift asynchronousratchetingtree/dhratchet/message/thrift asynchronousratchetingtree/dhratchet/message/thrift asynchronousratchetingtree/art/message/thrift--asynchronousratchetingtree/dhratchet/message/thrift 616

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 146 duplicates...
Size#FoldersFilesLinesCode
24 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
SetupMessageStruct.java
UpdateMessageStruct.java
60:106 (4%)
45:91 (7%)
view
24 x 2 AsynchronousRatchetingTr...hratchet/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
DHRatchetMessageStruct.java
DHRatchetSetupMessageStruct.java
50:96 (6%)
50:96 (6%)
view
20 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AuthenticatedMessageStruct.java
CiphertextMessageStruct.java
45:87 (6%)
45:87 (6%)
view
18 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
CiphertextMessageStruct.java
DHRatchetMessageStruct.java
305:335 (6%)
392:422 (4%)
view
18 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
CiphertextMessageStruct.java
DHRatchetMessageStruct.java
345:372 (6%)
436:463 (4%)
view
18 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
CiphertextMessageStruct.java
DHRatchetMessageStruct.java
44:80 (6%)
49:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
NodeStruct.java
SetupMessageStruct.java
50:85 (4%)
60:95 (2%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
UpdateMessageStruct.java
DHRatchetMessageStruct.java
45:80 (5%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
CiphertextMessageStruct.java
SetupMessageStruct.java
45:80 (5%)
60:95 (2%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AuthenticatedMessageStruct.java
NodeStruct.java
45:80 (5%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
NodeStruct.java
DHRatchetSetupMessageStruct.java
50:85 (4%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
AuthenticatedMessageStruct.java
DHRatchetSetupMessageStruct.java
45:80 (5%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AuthenticatedMessageStruct.java
SetupMessageStruct.java
45:80 (5%)
60:95 (2%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
CiphertextMessageStruct.java
DHRatchetSetupMessageStruct.java
45:80 (5%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
UpdateMessageStruct.java
DHRatchetSetupMessageStruct.java
45:80 (5%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
CiphertextMessageStruct.java
NodeStruct.java
45:80 (5%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
NodeStruct.java
UpdateMessageStruct.java
50:85 (4%)
45:80 (5%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
SetupMessageStruct.java
DHRatchetSetupMessageStruct.java
60:95 (2%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
SetupMessageStruct.java
DHRatchetMessageStruct.java
60:95 (2%)
50:85 (4%)
view
17 x 2 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
CiphertextMessageStruct.java
UpdateMessageStruct.java
45:80 (5%)
45:80 (5%)
view
Duplicated Units
The list of top 3 duplicated units.
See data for all 3 unit duplicates...
Size#FoldersFilesLinesCode
7 x 4 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
SetupMessageStruct.java
UpdateMessageStruct.java
DHRatchetSetupMessageStruct.java
DHRatchetMessageStruct.java
641:649 
370:378 
462:470 
462:470 
view
6 x 7 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
AsynchronousRatchetingTr...hratchet/message/thrift
SetupMessageStruct.java
CiphertextMessageStruct.java
NodeStruct.java
UpdateMessageStruct.java
AuthenticatedMessageStruct.java
DHRatchetSetupMessageStruct.java
DHRatchetMessageStruct.java
633:639 
363:369 
445:451 
362:368 
377:383 
454:460 
454:460 
view
6 x 3 AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
AsynchronousRatchetingTr...tree/art/message/thrift
CiphertextMessageStruct.java
NodeStruct.java
AuthenticatedMessageStruct.java
371:377 
453:459 
385:391 
view