diff options
author | mr <mr@mrautenberg.de> | 2011-01-04 14:32:28 +0100 |
---|---|---|
committer | mr <mr@mrautenberg.de> | 2011-01-04 14:32:28 +0100 |
commit | 7092d168aca6adb437500ed6113bf35eab9500b6 (patch) | |
tree | 15de4c906a5ec5d3930ea284668272248aa75405 | |
parent | 5598135cbd2e9f4d0ac203f85069dea0468fda4d (diff) |
A&A added
-rw-r--r-- | Rakefile | 15 | ||||
-rw-r--r-- | algorithm.rb | 3 | ||||
-rw-r--r-- | authorization.rb | 58 | ||||
-rw-r--r-- | dataset.rb | 43 | ||||
-rw-r--r-- | feature.rb | 2 | ||||
-rw-r--r-- | fminer.rb | 16 | ||||
-rw-r--r-- | lazar.rb | 35 | ||||
-rw-r--r-- | validate-owl.rb | 6 |
8 files changed, 90 insertions, 88 deletions
@@ -1,22 +1,27 @@ require 'rubygems' require 'opentox-ruby' +TEST_USER = "guest" +TEST_PW = "guest" + task ARGV[0] do puts ARGV[0]+".rb" require "./"+ARGV[0]+".rb" end task :setup do - @@classification_training_dataset = OpenTox::Dataset.create_from_csv_file("data/hamster_carcinogenicity.csv") - @@regression_training_dataset = OpenTox::Dataset.create_from_csv_file("data/EPAFHM.csv") + @@subjectid = OpenTox::Authorization.authenticate(TEST_USER,TEST_PW) + @@classification_training_dataset = OpenTox::Dataset.create_from_csv_file("data/hamster_carcinogenicity.csv", @@subjectid) + @@regression_training_dataset = OpenTox::Dataset.create_from_csv_file("data/EPAFHM.csv", @@subjectid) end task :teardown do - @@classification_training_dataset.delete - @@regression_training_dataset.delete + @@classification_training_dataset.delete(@@subjectid) + @@regression_training_dataset.delete(@@subjectid) + OpenTox::Authorization.logout(@@subjectid) end -[:all, :feature, :dataset, :fminer, :lazar].each do |t| +[:all, :feature, :dataset, :fminer, :lazar, :authorization].each do |t| task :teardown => t task t => :setup end diff --git a/algorithm.rb b/algorithm.rb index a5f35d1..db6fdec 100644 --- a/algorithm.rb +++ b/algorithm.rb @@ -6,6 +6,7 @@ require "./validate-owl.rb" class AlgorithmTest < Test::Unit::TestCase def setup + @@subjectid = OpenTox::Authorization.authenticate(TEST_USER,TEST_PW) @algorithms = [ File.join(CONFIG[:services]["opentox-algorithm"],"fminer","bbrc"), File.join(CONFIG[:services]["opentox-algorithm"],"fminer","last"), @@ -20,7 +21,7 @@ class AlgorithmTest < Test::Unit::TestCase def test_metadata @algorithms.each do |algorithm| puts algorithm - validate_owl(algorithm) + validate_owl(algorithm, @@subjectid) end end diff --git a/authorization.rb b/authorization.rb index b12ae49..3772638 100644 --- a/authorization.rb +++ b/authorization.rb @@ -1,9 +1,7 @@ require "rubygems" -require "opentox-ruby-api-wrapper" +require "opentox-ruby" require "test/unit" -TEST_USER = "guest" -TEST_PW = "guest" TEST_URI = "http://only_a_test/test/" + rand(1000000).to_s class TestOpenToxAuthorizationBasic < Test::Unit::TestCase @@ -14,9 +12,7 @@ class TestOpenToxAuthorizationBasic < Test::Unit::TestCase end def test_02_get_token - tok = login - assert_not_nil tok - logout(tok) + assert_not_nil @@subjectid end def test_03_is_valid_token @@ -32,9 +28,7 @@ class TestOpenToxAuthorizationBasic < Test::Unit::TestCase end def test_05_list_policies - tok = login - assert_kind_of Array, OpenTox::Authorization.list_policies(tok) - logout(tok) + assert_kind_of Array, OpenTox::Authorization.list_policies(@@subjectid) end end @@ -42,21 +36,15 @@ end class TestOpenToxAuthorizationLDAP < Test::Unit::TestCase def test_01_list_groups - tok = login - assert_kind_of Array, OpenTox::Authorization.list_groups(tok) - logout(tok) + assert_kind_of Array, OpenTox::Authorization.list_groups(@@subjectid) end def test_02_list_user_groups - tok = login - assert_kind_of Array, OpenTox::Authorization.list_groups(tok) - logout(tok) + assert_kind_of Array, OpenTox::Authorization.list_groups(@@subjectid) end def test_03_get_user - tok = login - assert_equal TEST_USER, OpenTox::Authorization.get_user(tok) - logout(tok) + assert_equal TEST_USER, OpenTox::Authorization.get_user(@@subjectid) end end @@ -64,43 +52,49 @@ end class TestOpenToxAuthorizationLDAP < Test::Unit::TestCase def test_01_create_check_delete_default_policies - tok = login - res = OpenTox::Authorization.send_policy(TEST_URI, tok) + res = OpenTox::Authorization.send_policy(TEST_URI, @@subjectid) assert res - assert OpenTox::Authorization.uri_has_policy(TEST_URI, tok) - policies = OpenTox::Authorization.list_uri_policies(TEST_URI, tok) + assert OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) + policies = OpenTox::Authorization.list_uri_policies(TEST_URI, @@subjectid) assert_kind_of Array, policies policies.each do |policy| - assert OpenTox::Authorization.delete_policy(policy, tok) + assert OpenTox::Authorization.delete_policy(policy, @@subjectid) end - logout(tok) end def test_02_check_policy_rules - tok = login tok_anonymous = OpenTox::Authorization.authenticate("anonymous","anonymous") assert_not_nil tok_anonymous - res = OpenTox::Authorization.send_policy(TEST_URI, tok) + res = OpenTox::Authorization.send_policy(TEST_URI, @@subjectid) assert res - assert OpenTox::Authorization.uri_has_policy(TEST_URI, tok) + assert OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) owner_rights = {"GET" => true, "POST" => true, "PUT" => true, "DELETE" => true} groupmember_rights = {"GET" => true, "POST" => nil, "PUT" => nil, "DELETE" => nil} owner_rights.each do |request, right| - assert_equal right, OpenTox::Authorization.authorize(TEST_URI, request, tok), "#{TEST_USER} requests #{request} to #{TEST_URI}" + assert_equal right, OpenTox::Authorization.authorize(TEST_URI, request, @@subjectid), "#{TEST_USER} requests #{request} to #{TEST_URI}" end groupmember_rights.each do |request, r| assert_equal r, OpenTox::Authorization.authorize(TEST_URI, request, tok_anonymous), "anonymous requests #{request} to #{TEST_URI}" end - policies = OpenTox::Authorization.list_uri_policies(TEST_URI, tok) + policies = OpenTox::Authorization.list_uri_policies(TEST_URI, @@subjectid) assert_kind_of Array, policies policies.each do |policy| - assert OpenTox::Authorization.delete_policy(policy, tok) + assert OpenTox::Authorization.delete_policy(policy, @@subjectid) end - logout(tok) + logout(tok_anonymous) end - + def test_03_check_different_uris + res = OpenTox::Authorization.send_policy(TEST_URI, @@subjectid) + assert OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) + assert OpenTox::Authorization.authorize(TEST_URI, "GET", @@subjectid), "GET request" + policies = OpenTox::Authorization.list_uri_policies(TEST_URI, @@subjectid) + policies.each do |policy| + assert OpenTox::Authorization.delete_policy(policy, @@subjectid) + end + + end end @@ -32,7 +32,7 @@ class DatasetTest < Test::Unit::TestCase @dataset = OpenTox::Dataset.find "http://apps.ideaconsult.net:8080/ambit2/dataset/2698" #File.open("test.rdf","w+"){|f| f.puts @dataset.to_rdfxml} @dataset.uri = "http://apps.ideaconsult.net:8080/ambit2/dataset" - uri = @dataset.save + uri = @dataset.save(@@subjectid) puts uri #@dataset.load_csv(File.open("data/hamster_carcinogenicity.csv").read) #@dataset.save @@ -40,14 +40,14 @@ class DatasetTest < Test::Unit::TestCase =end def test_create - dataset = OpenTox::Dataset.create - dataset.save + dataset = OpenTox::Dataset.create(CONFIG[:services]["opentox-dataset"], @@subjectid) + dataset.save(@@subjectid) assert_kind_of URI::HTTP, URI.parse(dataset.uri) - dataset.delete + dataset.delete(@@subjectid) end def test_all - datasets = OpenTox::Dataset.all + datasets = OpenTox::Dataset.all(CONFIG[:services]["opentox-dataset"], @@subjectid) assert_kind_of Array, datasets end @@ -65,37 +65,38 @@ class DatasetTest < Test::Unit::TestCase end def test_rest_csv - uri = OpenTox::RestClientWrapper.post(CONFIG[:services]["opentox-dataset"],{:accept => "text/uri-list"}, {:file => File.new("data/hamster_carcinogenicity.csv")}).to_s.chomp + uri = OpenTox::RestClientWrapper.post(CONFIG[:services]["opentox-dataset"],{:accept => "text/uri-list"}, {:file => File.new("data/hamster_carcinogenicity.csv"), :subjectid => @@subjectid}).to_s.chomp @dataset = OpenTox::Dataset.new uri - @dataset.load_all + @dataset.load_all(@@subjectid) hamster_carc? end def test_multicolumn_csv - uri = OpenTox::RestClientWrapper.post(CONFIG[:services]["opentox-dataset"],{:accept => "text/uri-list"}, {:file => File.new("data/multicolumn.csv")}).to_s.chomp + uri = OpenTox::RestClientWrapper.post(CONFIG[:services]["opentox-dataset"],{:accept => "text/uri-list"}, {:file => File.new("data/multicolumn.csv"), :subjectid => @@subjectid}).to_s.chomp @dataset = OpenTox::Dataset.new uri - @dataset.load_all + @dataset.load_all(@@subjectid) assert_equal 5, @dataset.features.size assert_equal 4, @dataset.compounds.size + end def test_from_csv @dataset = OpenTox::Dataset.new - @dataset.load_csv(File.open("data/hamster_carcinogenicity.csv").read) + @dataset.load_csv(File.open("data/hamster_carcinogenicity.csv").read, @@subjectid) hamster_carc? - @dataset.delete + @dataset.delete(@@subjectid) end def test_from_excel @dataset = OpenTox::Dataset.new - @dataset.load_spreadsheet(Excel.new("data/hamster_carcinogenicity.xls")) + @dataset.load_spreadsheet(Excel.new("data/hamster_carcinogenicity.xls"), @@subjectid) hamster_carc? - @dataset.delete + @dataset.delete(@@subjectid) end def test_load_metadata @datasets.each do |uri,data| - @dataset = OpenTox::Dataset.find(uri) + @dataset = OpenTox::Dataset.find(uri, @@subjectid) assert @dataset.metadata.size != 0 end end @@ -103,7 +104,7 @@ class DatasetTest < Test::Unit::TestCase def test_load_compounds @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_compounds + @dataset.load_compounds(@@subjectid) assert_equal @dataset.compounds.size,data[:nr_compounds] end end @@ -119,7 +120,7 @@ class DatasetTest < Test::Unit::TestCase def test_load_all @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_all + @dataset.load_all(@@subjectid) validate data end end @@ -127,7 +128,7 @@ class DatasetTest < Test::Unit::TestCase def test_yaml @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_all + @dataset.load_all(@@subjectid) #@dataset = YAML.load @dataset.to_yaml validate data end @@ -136,7 +137,7 @@ class DatasetTest < Test::Unit::TestCase def test_csv @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_all + @dataset.load_all(@@subjectid) csv = @dataset.to_csv.split("\n") assert_equal csv.size, data[:nr_compounds]+1 assert_equal csv.first.split(", ").size, data[:nr_dataset_features]+1 @@ -146,7 +147,7 @@ class DatasetTest < Test::Unit::TestCase def test_excel @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_all + @dataset.load_all(@@subjectid) book = @dataset.to_spreadsheet assert_kind_of Spreadsheet::Workbook, book #File.open("#{@dataset.id}.xls","w+"){|f| book.write f.path} @@ -156,7 +157,7 @@ class DatasetTest < Test::Unit::TestCase def test_ntriples @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_all + @dataset.load_all(@@subjectid) assert_kind_of String, @dataset.to_ntriples end end @@ -164,7 +165,7 @@ class DatasetTest < Test::Unit::TestCase def test_owl @datasets.each do |uri,data| @dataset = OpenTox::Dataset.new(uri) - @dataset.load_all + @dataset.load_all(@@subjectid) assert_kind_of String, @dataset.to_rdfxml end end @@ -25,7 +25,7 @@ class FeatureTest < Test::Unit::TestCase def test_owl #@features.each do |uri| - validate_owl @features.first + validate_owl @features.first, @@subjectid # Ambit does not validate #end end @@ -9,40 +9,40 @@ class FminerTest < Test::Unit::TestCase =end def test_bbrc feature = @@classification_training_dataset.features.keys.first - dataset_uri = OpenTox::Algorithm::Fminer::BBRC.new.run({:dataset_uri => @@classification_training_dataset.uri, :prediction_feature => feature}).to_s + dataset_uri = OpenTox::Algorithm::Fminer::BBRC.new.run({:dataset_uri => @@classification_training_dataset.uri, :prediction_feature => feature, :subjectid => @@subjectid}).to_s d =OpenTox::Dataset.new dataset_uri d.load_features assert_equal 41, d.features.size #validate_owl - d.delete + d.delete(@@subjectid) end def test_last feature = @@classification_training_dataset.features.keys.first - dataset_uri = OpenTox::Algorithm::Fminer::LAST.new.run({:dataset_uri => @@classification_training_dataset.uri, :prediction_feature => feature}).to_s + dataset_uri = OpenTox::Algorithm::Fminer::LAST.new.run({:dataset_uri => @@classification_training_dataset.uri, :prediction_feature => feature, :subjectid => @@subjectid}).to_s d =OpenTox::Dataset.new dataset_uri d.load_features assert_equal 35, d.features.size #validate_owl - d.delete + d.delete(@@subjectid) end def test_regression_bbrc feature = File.join @@regression_training_dataset.uri,"feature/LC50_mmol" - dataset_uri = OpenTox::Algorithm::Fminer::BBRC.new.run({:dataset_uri => @@regression_training_dataset.uri, :prediction_feature => feature}).to_s + dataset_uri = OpenTox::Algorithm::Fminer::BBRC.new.run({:dataset_uri => @@regression_training_dataset.uri, :prediction_feature => feature, :subjectid => @@subjectid}).to_s d =OpenTox::Dataset.new dataset_uri d.load_features assert_equal 222, d.features.size - d.delete + d.delete(@@subjectid) end def test_regression_last feature = File.join @@regression_training_dataset.uri,"feature/LC50_mmol" - dataset_uri = OpenTox::Algorithm::Fminer::LAST.new.run({:dataset_uri => @@regression_training_dataset.uri, :prediction_feature => feature}).to_s + dataset_uri = OpenTox::Algorithm::Fminer::LAST.new.run({:dataset_uri => @@regression_training_dataset.uri, :prediction_feature => feature, :subjectid => @@subjectid}).to_s d =OpenTox::Dataset.new dataset_uri d.load_features assert_equal 16, d.features.size - d.delete + d.delete(@@subjectid) end =begin =end @@ -7,48 +7,49 @@ class LazarTest < Test::Unit::TestCase =begin =end def test_create_regression_model - model_uri = OpenTox::Algorithm::Lazar.new.run({:dataset_uri => @@regression_training_dataset.uri}).to_s - lazar = OpenTox::Model::Lazar.find model_uri + model_uri = OpenTox::Algorithm::Lazar.new.run({:dataset_uri => @@regression_training_dataset.uri, :subjectid => @@subjectid}).to_s + lazar = OpenTox::Model::Lazar.find model_uri, @@subjectid assert_equal lazar.features.size, 222 compound = OpenTox::Compound.from_smiles("c1ccccc1NN") - prediction_uri = lazar.run(:compound_uri => compound.uri) - prediction = OpenTox::LazarPrediction.find(prediction_uri) + prediction_uri = lazar.run(:compound_uri => compound.uri, :subjectid => @@subjectid) + prediction = OpenTox::LazarPrediction.find(prediction_uri, @@subjectid) assert_equal prediction.value(compound), 0.149480050002539 assert_equal prediction.confidence(compound), 0.615246530364447 assert_equal prediction.neighbors(compound).size, 81 - prediction.delete - lazar.delete + prediction.delete(@@subjectid) + lazar.delete(@@subjectid) end def test_default_classification_model # create model - model_uri = OpenTox::Algorithm::Lazar.new.run({:dataset_uri => @@classification_training_dataset.uri}).to_s - lazar = OpenTox::Model::Lazar.find model_uri + model_uri = OpenTox::Algorithm::Lazar.new.run({:dataset_uri => @@classification_training_dataset.uri, :subjectid => @@subjectid}).to_s + lazar = OpenTox::Model::Lazar.find model_uri, @@subjectid assert_equal lazar.features.size, 41 # single prediction compound = OpenTox::Compound.from_smiles("c1ccccc1NN") - prediction_uri = lazar.run(:compound_uri => compound.uri) - prediction = OpenTox::LazarPrediction.find(prediction_uri) + prediction_uri = lazar.run(:compound_uri => compound.uri, :subjectid => @@subjectid) + prediction = OpenTox::LazarPrediction.find(prediction_uri, @@subjectid) assert_equal prediction.value(compound), false assert_equal prediction.confidence(compound), 0.25857114104619 assert_equal prediction.neighbors(compound).size, 15 - prediction.delete + prediction.delete(@@subjectid) # dataset activity compound = OpenTox::Compound.from_smiles("CNN") - prediction = OpenTox::LazarPrediction.find lazar.run(:compound_uri => compound.uri) + prediction_uri = lazar.run(:compound_uri => compound.uri, :subjectid => @@subjectid) + prediction = OpenTox::LazarPrediction.find prediction_uri, @@subjectid assert !prediction.measured_activities(compound).empty? puts prediction.measured_activities(compound).first.inspect assert_equal prediction.measured_activities(compound).first, true assert prediction.value(compound).nil? - prediction.delete + prediction.delete(@@subjectid) # dataset prediction - test_dataset = OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv") - prediction = OpenTox::LazarPrediction.find lazar.run(:dataset_uri => test_dataset.uri) + test_dataset = OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) + prediction = OpenTox::LazarPrediction.find lazar.run(:dataset_uri => test_dataset.uri, :subjectid => @@subjectid), @@subjectid assert_equal prediction.compounds.size, 4 compound = OpenTox::Compound.new prediction.compounds.first assert_equal prediction.value(compound), false - prediction.delete - lazar.delete + prediction.delete(@@subjectid) + lazar.delete(@@subjectid) end end diff --git a/validate-owl.rb b/validate-owl.rb index 569813f..736531b 100644 --- a/validate-owl.rb +++ b/validate-owl.rb @@ -1,9 +1,9 @@ #require 'nokogiri' -def validate_owl(uri) +def validate_owl(uri, subjectid=nil) if validator_available? - owl = OpenTox::RestClientWrapper.get(uri,:accept => "application/rdf+xml") - html = OpenTox::RestClientWrapper.post("http://www.mygrid.org.uk/OWL/Validator",{:rdf => owl, :level => "DL"}) + owl = OpenTox::RestClientWrapper.get(uri,{:accept => "application/rdf+xml",:subjectid => subjectid}) + html = OpenTox::RestClientWrapper.post("http://www.mygrid.org.uk/OWL/Validator",{:rdf => owl, :level => "DL",:subjectid => subjectid}) assert_match(/YES/,html) else puts "http://www.mygrid.org.uk/OWL/Validator offline" |