Class: Ring::SQA::AnalyzeBuffer
- Inherits:
-
Object
- Object
- Ring::SQA::AnalyzeBuffer
- Defined in:
- lib/ring/sqa/analyzer.rb
Instance Attribute Summary collapse
-
#array ⇒ Object
readonly
Returns the value of attribute array.
Instance Method Summary collapse
- #exceed_median?(tolerance = CFG.analyzer.tolerance) ⇒ Boolean
- #exceeding_nodes ⇒ Object
-
#initialize(nodes_count, max_size = CFG.analyzer.size, median_of = CFG.analyzer.median_of) ⇒ AnalyzeBuffer
constructor
A new instance of AnalyzeBuffer.
- #median ⇒ Object
- #node_count ⇒ Object
- #push(e) ⇒ Object
Constructor Details
#initialize(nodes_count, max_size = CFG.analyzer.size, median_of = CFG.analyzer.median_of) ⇒ AnalyzeBuffer
46 47 48 49 50 51 52 |
# File 'lib/ring/sqa/analyzer.rb', line 46 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 |
Instance Attribute Details
#array ⇒ Object (readonly)
Returns the value of attribute array.
45 46 47 |
# File 'lib/ring/sqa/analyzer.rb', line 45 def array @array end |
Instance Method Details
#exceed_median?(tolerance = CFG.analyzer.tolerance) ⇒ Boolean
61 62 63 64 |
# File 'lib/ring/sqa/analyzer.rb', line 61 def exceed_median? tolerance=CFG.analyzer.tolerance violate = (median+1)*tolerance node_count[@median_of..-1].all? { |e| e > violate } end |
#exceeding_nodes ⇒ Object
68 69 70 71 |
# File 'lib/ring/sqa/analyzer.rb', line 68 def exceeding_nodes exceed = @array[@median_of..-1].inject :& exceed - @array[0..@median_of-1].flatten.uniq end |
#median ⇒ Object
57 58 59 60 |
# File 'lib/ring/sqa/analyzer.rb', line 57 def median last = @median_of-1 node_count[0..last].sort[last/2] end |
#node_count ⇒ Object
65 66 67 |
# File 'lib/ring/sqa/analyzer.rb', line 65 def node_count @array.map { |nodes| nodes.size } end |
#push(e) ⇒ Object
53 54 55 56 |
# File 'lib/ring/sqa/analyzer.rb', line 53 def push e @array.shift @array.push e end |