Module: StudFinder::DispersionWarnings

Defined in:
lib/stud_finder/dispersion_warnings.rb

Class Method Summary collapse

Class Method Details

.build(files:, pcts:, raw_sources:) ⇒ Object



7
8
9
10
11
# File 'lib/stud_finder/dispersion_warnings.rb', line 7

def build(files:, pcts:, raw_sources:)
  raw_sources.filter_map do |signal, raw_source|
    "insufficient_dispersion_#{signal}" if insufficient_dispersion?(files, pcts.fetch(signal), raw_source)
  end
end

.insufficient_dispersion?(files, pct_map, raw_source) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
# File 'lib/stud_finder/dispersion_warnings.rb', line 13

def insufficient_dispersion?(files, pct_map, raw_source)
  values = files.map { |file| pct_map.fetch(file, 0.0).to_f }
  raw_values = files.map { |file| raw_source.fetch(file, 0).to_f }

  values.any? && values.all?(&:zero?) && raw_values.any? { |value| !value.zero? }
end