diff options
author | mguetlein <martin.guetlein@gmail.com> | 2011-05-09 14:06:48 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2011-05-09 14:06:48 +0200 |
commit | e09012e01aa865900184bee186933b11f6fa1d3f (patch) | |
tree | ed0fcc50302f127492092d3bd795904828e8d005 /test | |
parent | 02220bab22c0ea60394b71dfba536284ada17eb8 (diff) |
fix search via param functionality for validation, add corresponding unit-tests
Diffstat (limited to 'test')
-rw-r--r-- | test/unit_test.rb | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/test/unit_test.rb b/test/unit_test.rb index 2462984..5984f42 100644 --- a/test/unit_test.rb +++ b/test/unit_test.rb @@ -44,38 +44,55 @@ class ValidationTest < Test::Unit::TestCase puts "AA disabled" @@subjectid = nil end - + + @@data = [] files = { File.new("data/hamster_carcinogenicity.mini.csv") => :crossvalidation, File.new("data/EPAFHM.mini.csv") => :crossvalidation, File.new("data/hamster_carcinogenicity.csv") => :validation, File.new("data/EPAFHM.csv") => :validation, # File.new("data/StJudes-HepG2-testset_Class.csv") => :crossvalidation } - @@data = [] files.each do |file,type| @@data << { :type => type, :data => ValidationExamples::Util.upload_dataset(file, @@subjectid), :feat => ValidationExamples::Util.prediction_feature_for_file(file), - :file => file} + :info => file.path, :delete => true} end +# @@data << { :type => :crossvalidation, +# :data => "http://apps.ideaconsult.net:8080/ambit2/dataset/9?max=50", +# :feat => "http://apps.ideaconsult.net:8080/ambit2/feature/21573", +# :info => "http://apps.ideaconsult.net:8080/ambit2/dataset/9?max=50" } +# @@data << { :type => :validation, +# :data => "http://apps.ideaconsult.net:8080/ambit2/dataset/272?max=50", +# :feat => "http://apps.ideaconsult.net:8080/ambit2/feature/26221", +# :info => "http://apps.ideaconsult.net:8080/ambit2/dataset/272?max=50" } end def global_teardown puts "delete and logout" - @@data.each{|data| OpenTox::Dataset.find(data[:data],@@subjectid).delete(@@subjectid)} + @@data.each{|data| OpenTox::Dataset.find(data[:data],@@subjectid).delete(@@subjectid) if data[:delete]} @@vs.each{|v| v.delete(@@subjectid)} if defined?@@vs @@cvs.each{|cv| cv.delete(@@subjectid)} if defined?@@cvs @@reports.each{|report| report.delete(@@subjectid)} if defined?@@reports @@qmrfReports.each{|qmrfReport| qmrfReport.delete(@@subjectid)} if defined?@@qmrfReports OpenTox::Authorization.logout(@@subjectid) if AA_SERVER end + + def test_validation_list + puts "test_validation_list" + list = OpenTox::Validation.list + assert list.is_a?(Array) + list.each do |l| + assert l.uri? + end + end def test_training_test_split @@vs = [] @@data.each do |data| if data[:type]==:validation - puts "test_training_test_split "+data[:file].path.to_s + puts "test_training_test_split "+data[:info].to_s p = { :dataset_uri => data[:data], :algorithm_uri => File.join(CONFIG[:services]["opentox-algorithm"],"lazar"), @@ -100,6 +117,11 @@ class ValidationTest < Test::Unit::TestCase end v = OpenTox::Validation.find(v.uri, @@subjectid) assert v.uri.uri? + + model = v.metadata[OT.model] + assert model.uri? + v_list = OpenTox::Validation.list( {:model => model} ) + assert v_list.size==1 and v_list.include?(v.uri) @@vs << v end end @@ -118,6 +140,8 @@ class ValidationTest < Test::Unit::TestCase OpenTox::CrossvalidationReport.create(v.uri) end end + report = OpenTox::ValidationReport.find_for_validation(v.uri,@@subjectid) + assert report==nil,"report already exists for validation\nreport: "+(report ? report.uri.to_s : "")+"\nvalidation: "+v.uri.to_s report = OpenTox::ValidationReport.create(v.uri,@@subjectid) assert report.uri.uri? if @@subjectid @@ -134,7 +158,16 @@ class ValidationTest < Test::Unit::TestCase @@reports << report2 end end - + + def test_crossvalidation_list + puts "test_crossvalidation_list" + list = OpenTox::Crossvalidation.list + assert list.is_a?(Array) + list.each do |l| + assert l.uri? + end + end + def test_crossvalidation #assert_rest_call_error OpenTox::NotFoundError do @@ -143,7 +176,7 @@ class ValidationTest < Test::Unit::TestCase @@cvs = [] @@data.each do |data| if data[:type]==:crossvalidation - puts "test_crossvalidation "+data[:file].path.to_s + puts "test_crossvalidation "+data[:info].to_s p = { :dataset_uri => data[:data], :algorithm_uri => File.join(CONFIG[:services]["opentox-algorithm"],"lazar"), @@ -174,6 +207,16 @@ class ValidationTest < Test::Unit::TestCase end summary = cv.summary(@@subjectid) assert_kind_of Hash,summary + + algorithm = cv.metadata[OT.algorithm] + assert algorithm.uri? + cv_list = OpenTox::Crossvalidation.list( {:algorithm => algorithm} ) + assert cv_list.include?(cv.uri) + cv_list.each do |cv_uri| + alg = OpenTox::Crossvalidation.find(cv_uri).metadata[OT.algorithm] + assert alg==algorithm,"wrong algorithm for filtered crossvalidation, should be: '"+algorithm.to_s+"', is: '"+alg.to_s+"'" + end + @@cvs << cv end end @@ -195,6 +238,7 @@ class ValidationTest < Test::Unit::TestCase OpenTox::CrossvalidationReport.create(cv.uri) end end + assert OpenTox::ValidationReport.find_for_validation(cv.uri,@@subjectid)==nil report = OpenTox::CrossvalidationReport.create(cv.uri,@@subjectid) assert report.uri.uri? if @@subjectid |