module RGen::Ext::Comparison::UnorderedComparison

Public Class Methods

eql?(left,right,element_comparator) click to toggle source
# File lib/rgen/ext/comparison.rb, line 11
def self.eql?(left,right,element_comparator)
  return false unless left.count==right.count
  left.each do |l|
    return false unless how_many_times_in(l,left,element_comparator)==how_many_times_in(l,right,element_comparator)
  end
  true
end

Private Class Methods

how_many_times_in(el,array,element_comparator) click to toggle source
# File lib/rgen/ext/comparison.rb, line 21
def self.how_many_times_in(el,array,element_comparator)
  count = 0
  array.each do |other|
    if element_comparator
      count += 1 if element_comparator.eql?(el,other)
    else
      count += 1 if el.eql?(other)
    end
  end
  count
end