summaryrefslogtreecommitdiff
path: root/test-util.rb
blob: 262065620beaac49b6e9f1a650af297deaddf459 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'rubygems'
require 'test/unit'

module TestUtil
  
  def dataset_equal(d,d2)
    assert d.compounds.sort==d2.compounds.sort,
      d.compounds.sort.to_yaml+"\n!=\n"+d2.compounds.sort.to_yaml
    assert d.features.keys.size==d2.features.keys.size,
      d.features.keys.to_yaml+"\n!=\n"+d2.features.keys.to_yaml
    assert d.features.keys.sort==d2.features.keys.sort,
      d.features.keys.sort.to_yaml+"\n!=\n"+d2.features.keys.sort.to_yaml
    d.compounds.each do |c|
      d.features.keys.each do |f|
        assert_array_about_equal d.data_entries[c][f],d2.data_entries[c][f]
      end
    end
  end
  
  def assert_array_about_equal(a,a2)
    if (a!=nil || a2!=nil)
      raise "no arrays #{a.class} #{a2.class}" unless a.is_a?(Array) and a2.is_a?(Array)
      assert a.size==a2.size
      a.sort! 
      a2.sort!
      a.size.times do |i|
        if (a[i].is_a?(Float) and a2[i].is_a?(Float))
          assert (a[i]-a2[i]).abs<0.0000001,"#{a[i]}(#{a[i].class}) != #{a2[i]}(#{a2[i].class})"
        else
          assert a[i]==a2[i],"#{a[i]}(#{a[i].class}) != #{a2[i]}(#{a2[i].class})"
        end
      end
    end
  end
  
end