Class: Testprune::DuplicationDetector
- Inherits:
-
Object
- Object
- Testprune::DuplicationDetector
- Defined in:
- lib/testprune/duplication_detector.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(footprints, overlap_threshold: 0.9, baseline_fraction: nil) ⇒ DuplicationDetector
constructor
A new instance of DuplicationDetector.
Constructor Details
#initialize(footprints, overlap_threshold: 0.9, baseline_fraction: nil) ⇒ DuplicationDetector
Returns a new instance of DuplicationDetector.
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/testprune/duplication_detector.rb', line 48 def initialize(footprints, overlap_threshold: 0.9, baseline_fraction: nil) @original_footprints = footprints # preserved for SafetyCheck ambient-unit guarantee ambient = Baseline.ambient_units(footprints, baseline_fraction) had_coverage = footprints.reject(&:empty?).size @footprints = strip_ambient(footprints, ambient).reject(&:empty?) @ambient = ambient.size @setup_only = had_coverage - @footprints.size # lost all signal to baseline @threshold = overlap_threshold @candidates = [] @seen = Set.new # ids already proposed for removal @protected = Set.new # ids chosen as keepers — never propose these end |
Instance Method Details
#call ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/testprune/duplication_detector.rb', line 61 def call detect_identical detect_subset detect_structural detect_overlap SafetyCheck.new(@footprints, original_footprints: @original_footprints).apply(@candidates) DetectorResult.new(@footprints, @candidates, ambient_units: @ambient, setup_only: @setup_only) end |