summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2012-01-30 12:20:41 +0100
committermguetlein <martin.guetlein@gmail.com>2012-01-30 12:20:41 +0100
commitf65de1edb7ad66f5d0d8a34bcb0152b60bf37465 (patch)
tree04f23cdc056ea95784fb3a5178a7ce173fac23c0
parent3245c5813517f6e6754b3263dbe816f66279727f (diff)
add test for datset.merge method
-rw-r--r--dataset.rb43
1 files changed, 42 insertions, 1 deletions
diff --git a/dataset.rb b/dataset.rb
index fe249b2..96e8313 100644
--- a/dataset.rb
+++ b/dataset.rb
@@ -220,7 +220,48 @@ class DatasetTest < Test::Unit::TestCase
end
=begin
-=end
+=end
+
+ def test_merge()
+ #upload
+ dataset1 = OpenTox::Dataset.create_from_csv_file(File.new("data/hamster_carcinogenicity.csv").path, @subjectid)
+ dataset2 = OpenTox::Dataset.create_from_csv_file(File.new("data/multi_cell_call.csv").path, @subjectid)
+ #merge1
+ title = "test merge"
+ dataset_merge1 = OpenTox::Dataset.merge(dataset1, dataset2, { DC.title => title,DC.creator => "testsuite"}, @subjectid )
+ dataset_reloaded1 = OpenTox::Dataset.find(dataset_merge1.uri, @subjectid)
+ #test1
+ [dataset_merge1, dataset_reloaded1].each do |d|
+ assert_equal d.metadata[DC.title],title
+ assert_equal d.features.size,(dataset1.features.size+dataset2.features.size)
+ assert_equal d.compounds.size,(dataset1.compounds+dataset2.compounds).uniq.size
+ [dataset1, dataset2].each do |d_i|
+ d_i.compounds.each{|c| assert d.compounds.include?(c)}
+ d_i.features.keys.each{|f| assert d.features.keys.include?(f)}
+ d_i.features.keys.each do |f|
+ assert_equal d_i.features[f],d.features[f]
+ d_i.compounds do |c|
+ assert_equal d_i.data_entries[c][f],d.data_entries[c][f]
+ end
+ end
+ end
+ end
+ #merge2
+ compounds1 = dataset1.compounds[0..dataset1.compounds.size/2]
+ features1 = []
+ dataset_merge2 = OpenTox::Dataset.merge(dataset1, dataset2, {}, @subjectid, features1, nil, compounds1 )
+ dataset_reloaded2 = OpenTox::Dataset.find(dataset_merge2.uri, @subjectid)
+ #test2
+ [dataset_merge2, dataset_reloaded2].each do |d|
+ assert_equal d.features.size,dataset2.features.size
+ assert_equal d.compounds.size,(compounds1+dataset2.compounds).uniq.size
+ end
+ #cleanup
+ [dataset_merge1, dataset_merge2, dataset1, dataset2].each do |d|
+ OpenTox::RestClientWrapper.delete(d.uri,{:subjectid => @subjectid})
+ end
+ end
+
def dataset_equal(d,d2)
assert d.compounds.sort==d2.compounds.sort,