Class: Fitting::Statistics::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/fitting/statistics/template.rb

Instance Method Summary collapse

Constructor Details

#initialize(tested_requests, config, depth = 'valid') ⇒ Template

Returns a new instance of Template.



12
13
14
15
16
# File 'lib/fitting/statistics/template.rb', line 12

def initialize(tested_requests, config, depth = 'valid')
  @tested_requests = tested_requests
  @config = config
  @depth = depth
end

Instance Method Details

#black_measurementObject



56
57
58
59
60
61
62
63
# File 'lib/fitting/statistics/template.rb', line 56

def black_measurement
  @black_measurement ||=
    if @depth == 'valid'
      Fitting::Statistics::Measurement.new(black_unit)
    else
      Fitting::Statistics::MeasurementCover.new(black_unit)
    end
end

#black_statisticsObject



43
44
45
# File 'lib/fitting/statistics/template.rb', line 43

def black_statistics
  @black_statistics ||= Fitting::Statistics::Analysis.new(black_measurement, @depth)
end

#black_unitObject



71
72
73
74
75
# File 'lib/fitting/statistics/template.rb', line 71

def black_unit
  @black_unit_requests ||= documented_requests_black.inject([]) do |res, documented_request|
    res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
  end
end

#documentedObject



87
88
89
90
91
# File 'lib/fitting/statistics/template.rb', line 87

def documented
  @documented_requests ||= @config.tomogram.to_a.inject([]) do |res, tomogram_request|
    res.push(Fitting::Records::Documented::Request.new(tomogram_request, white_list.to_a))
  end
end

#documented_requests_blackObject



81
82
83
84
85
# File 'lib/fitting/statistics/template.rb', line 81

def documented_requests_black
  @documented_requests_black ||= documented.find_all do |request|
    !request.white
  end
end

#documented_requests_whiteObject



77
78
79
# File 'lib/fitting/statistics/template.rb', line 77

def documented_requests_white
  @documented_requests_white ||= documented.find_all(&:white)
end

#not_coveredObject



35
36
37
# File 'lib/fitting/statistics/template.rb', line 35

def not_covered
  Fitting::Statistics::NotCoveredResponses.new(white_measurement).to_s
end

#saveObject



18
19
20
21
# File 'lib/fitting/statistics/template.rb', line 18

def save
  File.open(@config.stats_path, 'w') { |file| file.write(stats) }
  File.open(@config.not_covered_path, 'w') { |file| file.write(not_covered) }
end

#statsObject



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/fitting/statistics/template.rb', line 23

def stats
  if @config.white_list.present? || @config.resource_white_list.present? || @config.include_resources.present?
    [
      ['[Black list]', black_statistics].join("\n"),
      ['[White list]', white_statistics].join("\n"),
      ''
    ].join("\n\n")
  else
    [white_statistics, "\n\n"].join
  end
end

#white_listObject



93
94
95
96
97
98
99
100
101
102
# File 'lib/fitting/statistics/template.rb', line 93

def white_list
  @white_list ||= Fitting::Storage::WhiteList.new(
    @config.prefix,
    @config.white_list,
    @config.resource_white_list,
    @config.include_resources,
    @config.include_actions,
    @config.tomogram.to_resources
  )
end

#white_measurementObject



47
48
49
50
51
52
53
54
# File 'lib/fitting/statistics/template.rb', line 47

def white_measurement
  @white_measurement ||=
    if @depth == 'valid'
      Fitting::Statistics::Measurement.new(white_unit)
    else
      Fitting::Statistics::MeasurementCover.new(white_unit)
    end
end

#white_statisticsObject



39
40
41
# File 'lib/fitting/statistics/template.rb', line 39

def white_statistics
  @white_statistics ||= Fitting::Statistics::Analysis.new(white_measurement, @depth)
end

#white_unitObject



65
66
67
68
69
# File 'lib/fitting/statistics/template.rb', line 65

def white_unit
  @white_unit_requests ||= documented_requests_white.inject([]) do |res, documented_request|
    res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
  end
end