Class: Hashira::Duplication::Clusters

Inherits:
Object
  • Object
show all
Defined in:
lib/hashira/duplication/clusters.rb

Constant Summary collapse

PREFILTER =
12
BASE_MASS =
16
NEAR_MASS =
40
PAIR =
2
PENALTY_PER_RECURRENCE =
2

Instance Method Summary collapse

Constructor Details

#initialize(all) ⇒ Clusters

Returns a new instance of Clusters.



10
11
12
# File 'lib/hashira/duplication/clusters.rb', line 10

def initialize(all)
  @all = all
end

Instance Method Details

#sortedObject



14
15
16
17
18
# File 'lib/hashira/duplication/clusters.rb', line 14

def sorted
  fragments.group_by(&:types).each_value { |group| chain(group) }
  Hashira::Duplication::NearMiss.new(fragments).pairs.each { |left, right| sets.union(left, right) }
  Hashira::Duplication::Maximal.new(sized).reduced.sort_by { -it.mass }
end