facebookresearch / RTFM
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
  • 7% duplication:
    • 3,942 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 300 duplicated lines
  • 15 duplicates
system7% (300 lines)
Duplication per Extension
py7% (300 lines)
Duplication per Component (primary)
rtfm/dynamics/item/weapon20% (91 lines)
rtfm/tasks12% (80 lines)
model17% (60 lines)
rtfm/dynamics/item/armour23% (57 lines)
core4% (12 lines)
ROOT0% (0 lines)
rtfm0% (0 lines)
rtfm/dynamics0% (0 lines)
rtfm/dynamics/item/modifier0% (0 lines)
rtfm/dynamics/item0% (0 lines)
rtfm/dynamics/item/accessory0% (0 lines)
rtfm/dynamics/monster0% (0 lines)

Duplication Between Components (50+ lines)

G rtfm/dynamics/item/armour rtfm/dynamics/item/armour rtfm/dynamics/item/weapon rtfm/dynamics/item/weapon rtfm/dynamics/item/armour--rtfm/dynamics/item/weapon 114

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 15 longest duplicates.
See data for all 15 duplicates...
Size#FoldersFilesLinesCode
24 x 2 model
model
paper_conv.py
paper_film.py
50:77 (35%)
62:89 (32%)
view
17 x 2 rtfm/dynamics/item/weapon
rtfm/dynamics/item/weapon
pickaxes.py
swords.py
11:42 (100%)
11:42 (100%)
view
16 x 2 rtfm/dynamics/item/armour
rtfm/dynamics/item/weapon
base_armour.py
base_weapon.py
36:55 (40%)
37:56 (32%)
view
12 x 2 rtfm/tasks
rtfm/tasks
groups.py
groups.py
82:95 (4%)
240:253 (4%)
view
11 x 2 rtfm/dynamics/item/armour
rtfm/dynamics/item/weapon
generate.py
generate.py
17:991 (16%)
17:1036 (14%)
view
10 x 2 rtfm/dynamics/item/armour
rtfm/dynamics/item/weapon
generate.py
generate.py
1045:1056 (14%)
1092:1103 (13%)
view
8 x 2 rtfm/dynamics/item/armour
rtfm/dynamics/item/weapon
generate.py
generate.py
1031:1042 (11%)
1078:1089 (10%)
view
8 x 2 rtfm/tasks
rtfm/tasks
groups.py
rock_paper_scissors.py
137:145 (2%)
93:101 (6%)
view
7 x 2 rtfm/tasks
rtfm/tasks
groups.py
groups.py
97:103 (2%)
254:260 (2%)
view
7 x 2 rtfm/tasks
rtfm/tasks
groups.py
rock_paper_scissors.py
110:116 (2%)
44:50 (5%)
view
6 x 2 rtfm/dynamics/item/armour
rtfm/dynamics/item/weapon
generate.py
generate.py
995:1000 (8%)
1041:1046 (8%)
view
6 x 2 rtfm/tasks
rtfm/tasks
groups.py
rock_paper_scissors.py
186:192 (2%)
115:121 (4%)
view
6 x 2 rtfm/dynamics/item/armour
rtfm/dynamics/item/weapon
generate.py
generate.py
1006:1013 (8%)
1052:1059 (8%)
view
6 x 2 model
model
paper_film.py
paper_txt2pi.py
26:32 (8%)
29:35 (8%)
view
6 x 2 core
core
vtrace.py
vtrace.py
59:64 (8%)
88:93 (8%)
view
Duplicated Units
The list of top 1 duplicated units.
See data for all 1 unit duplicate
Size#FoldersFilesLinesCode
7 x 2 model
model
paper_film.py
paper_conv.py
0:0 
0:0 
view