summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-05-09 16:31:29 +0200
committermguetlein <martin.guetlein@gmail.com>2011-05-09 16:31:29 +0200
commitd798101491309cd65b0d49ed2993d439a74d7c5e (patch)
tree32b285241376da9fec17b0fbd8c50e048d6574d4 /test
parente09012e01aa865900184bee186933b11f6fa1d3f (diff)
remove unit tests from validation repository (move to test)
Diffstat (limited to 'test')
-rw-r--r--test/unit_test.rb321
1 files changed, 0 insertions, 321 deletions
diff --git a/test/unit_test.rb b/test/unit_test.rb
deleted file mode 100644
index 5984f42..0000000
--- a/test/unit_test.rb
+++ /dev/null
@@ -1,321 +0,0 @@
-#TEST_USER = "mgtest"
-#TEST_PW = "mgpasswd"
-ENV['RACK_ENV'] = 'production'
-
-require "rubygems"
-require "sinatra"
-require "uri"
-require "yaml"
-require 'application.rb'
-require 'test/unit'
-require 'rack/test'
-require 'lib/test_util.rb'
-require 'test/test_examples.rb'
-
-TEST_USER = "guest"
-TEST_PW = "guest"
-
-#LOGGER = OTLogger.new(STDOUT)
-#LOGGER.datetime_format = "%Y-%m-%d %H:%M:%S "
-#LOGGER.formatter = Logger::Formatter.new
-
-module Sinatra
- set :raise_errors, false
- set :show_exceptions, false
-end
-
-class Exception
- def message
- errorCause ? errorCause.to_yaml : to_s
- end
-end
-
-class ValidationTest < Test::Unit::TestCase
- include Rack::Test::Methods
- include Lib::TestUtil
-
- def global_setup
- puts "login and upload datasets"
- if AA_SERVER
- @@subjectid = OpenTox::Authorization.authenticate(TEST_USER,TEST_PW)
- raise "could not log in" unless @@subjectid
- puts "logged in: "+@@subjectid.to_s
- else
- 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
- }
- files.each do |file,type|
- @@data << { :type => type,
- :data => ValidationExamples::Util.upload_dataset(file, @@subjectid),
- :feat => ValidationExamples::Util.prediction_feature_for_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) 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[:info].to_s
- p = {
- :dataset_uri => data[:data],
- :algorithm_uri => File.join(CONFIG[:services]["opentox-algorithm"],"lazar"),
- :algorithm_params => "feature_generation_uri="+File.join(CONFIG[:services]["opentox-algorithm"],"fminer/bbrc"),
- :prediction_feature => data[:feat],
- :split_ratio => 0.95,
- :random_seed => 2}
- t = OpenTox::SubTask.new(nil,0,1)
- def t.progress(pct)
- if !defined?@last_msg or @last_msg+3<Time.new
- puts "waiting for training-test-split validation: "+pct.to_s
- @last_msg=Time.new
- end
- end
- def t.waiting_for(task_uri); end
- v = OpenTox::Validation.create_training_test_split(p, @@subjectid, t)
- assert v.uri.uri?
- if @@subjectid
- assert_rest_call_error OpenTox::NotAuthorizedError do
- OpenTox::Crossvalidation.find(v.uri)
- end
- 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
- end
-
- def test_validation_report
- #@@cv = OpenTox::Crossvalidation.find("http://local-ot/validation/crossvalidation/48", @@subjectid)
-
- @@reports = [] unless defined?@@reports
- @@vs.each do |v|
- puts "test_validation_report"
- assert defined?v,"no validation defined"
- assert_kind_of OpenTox::Validation,v
- if @@subjectid
- assert_rest_call_error OpenTox::NotAuthorizedError do
- 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
- assert_rest_call_error OpenTox::NotAuthorizedError do
- OpenTox::CrossvalidationReport.find(report.uri)
- end
- end
- report = OpenTox::ValidationReport.find(report.uri,@@subjectid)
- assert report.uri.uri?
- report2 = OpenTox::ValidationReport.find_for_validation(v.uri,@@subjectid)
- assert_equal report.uri,report2.uri
- report3_uri = v.find_or_create_report(@@subjectid)
- assert_equal report.uri,report3_uri
- @@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
- # OpenTox::Crossvalidation.find(File.join(CONFIG[:services]["opentox-validation"],"crossvalidation/noexistingid"))
- #end
- @@cvs = []
- @@data.each do |data|
- if data[:type]==:crossvalidation
- puts "test_crossvalidation "+data[:info].to_s
- p = {
- :dataset_uri => data[:data],
- :algorithm_uri => File.join(CONFIG[:services]["opentox-algorithm"],"lazar"),
- :algorithm_params => "feature_generation_uri="+File.join(CONFIG[:services]["opentox-algorithm"],"fminer/bbrc"),
- :prediction_feature => data[:feat],
- :num_folds => 2 }
- t = OpenTox::SubTask.new(nil,0,1)
- def t.progress(pct)
- if !defined?@last_msg or @last_msg+3<Time.new
- puts "waiting for crossvalidation: "+pct.to_s
- @last_msg=Time.new
- end
- end
- def t.waiting_for(task_uri); end
- cv = OpenTox::Crossvalidation.create(p, @@subjectid, t)
- assert cv.uri.uri?
- if @@subjectid
- assert_rest_call_error OpenTox::NotAuthorizedError do
- OpenTox::Crossvalidation.find(cv.uri)
- end
- end
- cv = OpenTox::Crossvalidation.find(cv.uri, @@subjectid)
- assert cv.uri.uri?
- if @@subjectid
- assert_rest_call_error OpenTox::NotAuthorizedError do
- cv.summary(cv)
- end
- 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
- end
-
- def test_crossvalidation_report
- #@@cv = OpenTox::Crossvalidation.find("http://local-ot/validation/crossvalidation/48", @@subjectid)
-
- @@reports = [] unless defined?@@reports
- @@cvs.each do |cv|
- puts "test_crossvalidation_report"
- assert defined?cv,"no crossvalidation defined"
- assert_kind_of OpenTox::Crossvalidation,cv
- #assert_rest_call_error OpenTox::NotFoundError do
- # OpenTox::CrossvalidationReport.find_for_crossvalidation(cv.uri)
- #end
- if @@subjectid
- assert_rest_call_error OpenTox::NotAuthorizedError do
- 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
- assert_rest_call_error OpenTox::NotAuthorizedError do
- OpenTox::CrossvalidationReport.find(report.uri)
- end
- end
- report = OpenTox::CrossvalidationReport.find(report.uri,@@subjectid)
- assert report.uri.uri?
- report2 = OpenTox::CrossvalidationReport.find_for_crossvalidation(cv.uri,@@subjectid)
- assert_equal report.uri,report2.uri
- report3_uri = cv.find_or_create_report(@@subjectid)
- assert_equal report.uri,report3_uri
- @@reports << report2
- end
- end
-
- def test_qmrf_report
- #@@cv = OpenTox::Crossvalidation.find("http://local-ot/validation/crossvalidation/13", @@subjectid)
-
- @@qmrfReports = []
- @@cvs.each do |cv|
- puts "test_qmrf_report"
- assert defined?cv,"no crossvalidation defined"
- validations = cv.metadata[OT.validation]
- assert_kind_of Array,validations
- assert validations.size==cv.metadata[OT.numFolds].to_i,validations.size.to_s+"!="+cv.metadata[OT.numFolds].to_s
- val = OpenTox::Validation.find(validations[0], @@subjectid)
- model_uri = val.metadata[OT.model]
-
- model = OpenTox::Model::Generic.find(model_uri, @@subjectid)
- assert model!=nil
-
- #assert_rest_call_error OpenTox::NotFoundError do
- # OpenTox::QMRFReport.find_for_model(model_uri, @@subjectid)
- #end
-
- @@qmrfReports << OpenTox::QMRFReport.create(model_uri, @@subjectid)
- end
- end
-
- ################### utils and overrides ##########################
-
- def app
- Sinatra::Application
- end
-
- # checks RestCallError type
- def assert_rest_call_error( ex )
- if ex==OpenTox::NotAuthorizedError and @@subjectid==nil
- puts "AA disabled: skipping test for not authorized"
- return
- end
- begin
- yield
- rescue OpenTox::RestCallError => e
- report = e.errorCause
- while report.errorCause
- report = report.errorCause
- end
- assert_equal report.errorType,ex.to_s
- end
- end
-
- # hack to have a global_setup and global_teardown
- def teardown
- if((@@expected_test_count-=1) == 0)
- global_teardown
- end
- end
- def setup
- unless defined?@@expected_test_count
- @@expected_test_count = (self.class.instance_methods.reject{|method| method[0..3] != 'test'}).length
- global_setup
- end
- end
-
-end
-
-