class Ring::SQA::AnalyzeBuffer
Attributes
array[R]
Public Class Methods
new(nodes_count, max_size=CFG.analyzer.size, median_of=CFG.analyzer.median_of)
click to toggle source
# File lib/ring/sqa/analyzer.rb, line 55 def initialize nodes_count, max_size=CFG.analyzer.size, median_of=CFG.analyzer.median_of @max_size = max_size @median_of = median_of nodes_count = CFG.fake? ? 0 : nodes_count init_nodes = Array.new nodes_count * 2, '' @array = Array.new max_size, init_nodes end
Public Instance Methods
exceed_median?(tolerance=CFG.analyzer.tolerance)
click to toggle source
# File lib/ring/sqa/analyzer.rb, line 70 def exceed_median? tolerance=CFG.analyzer.tolerance violate_relative = (median+1)*tolerance.relative violate_absolute = (median+1)+tolerance.absolute node_count[@median_of..-1].all? { |e| e > violate_relative && e > violate_absolute } end
exceeding_nodes()
click to toggle source
# File lib/ring/sqa/analyzer.rb, line 78 def exceeding_nodes exceed = @array[@median_of..-1].inject :& exceed - @array[0..@median_of-1].flatten.uniq end
median()
click to toggle source
# File lib/ring/sqa/analyzer.rb, line 66 def median last = @median_of-1 node_count[0..last].sort[last/2] end
node_count()
click to toggle source
# File lib/ring/sqa/analyzer.rb, line 75 def node_count @array.map { |nodes| nodes.size } end
push(e)
click to toggle source
# File lib/ring/sqa/analyzer.rb, line 62 def push e @array.shift @array.push e end