diff options
author | Martin Gütlein <martin.guetlein@gmail.com> | 2010-01-12 11:14:02 +0100 |
---|---|---|
committer | Martin Gütlein <martin.guetlein@gmail.com> | 2010-01-12 11:14:02 +0100 |
commit | 037e9dded9dc0e0708ebacc7a8e987fcf1cc9d59 (patch) | |
tree | 98351f804fe98c7179d3cdcd9477a461868665fe /example.rb | |
parent | 86f056bbb8f8b083313a8dd55b1b8aa47574afe1 (diff) |
added report examples and example tests, new module Validation
Diffstat (limited to 'example.rb')
-rw-r--r-- | example.rb | 85 |
1 files changed, 75 insertions, 10 deletions
@@ -10,6 +10,8 @@ class Example @@train_data=File.join @@config[:services]["opentox-dataset"],"2" @@test_data=File.join @@config[:services]["opentox-dataset"],"3" + @@summary="" + def self.transform_example file = File.new("EXAMPLES", "r") @@ -28,7 +30,10 @@ class Example "prediction_feature" => @@feature, "algorithm_uri" => @@alg, "algorithm_params" => @@alg_params, - "crossvalidation_id" => "1",} + "crossvalidation_id" => "1", + "validation_report_id" => "1", + "crossvalidation_report_id" => "1", + } sub.each do |k,v| res.gsub!(/<#{k}>/,v) @@ -37,37 +42,97 @@ class Example end def self.delete_all(uri_list_service) - uri_list = RestClient.get(uri_list_service) + uri_list = OpenTox::RestClientWrapper.get(uri_list_service) uri_list.split("\n").each do |uri| - RestClient.delete(uri) + OpenTox::RestClientWrapper.delete(uri) end end + def self.log(log_string) + LOGGER.debug log_string + @@summary += log_string+"\n" + end + def self.prepare_example_resources + @@summary = "" delete_all(@@config[:services]["opentox-dataset"]) + data = File.read(@@file.path) - data_uri = RestClient.post @@config[:services]["opentox-dataset"], data, :content_type => "application/rdf+xml" - puts "uploaded dataset "+data_uri + data_uri = OpenTox::RestClientWrapper.post @@config[:services]["opentox-dataset"], data, :content_type => "application/rdf+xml" + log "uploaded dataset "+data_uri raise "failed to prepare demo" unless data_uri==@@data Lib::Validation.auto_migrate! delete_all(@@config[:services]["opentox-model"]) - vali_uri = RestClient.post File.join(@@config[:services]["opentox-validation"],'/training_test_split'), { :dataset_uri => data_uri, + vali_uri = OpenTox::RestClientWrapper.post File.join(@@config[:services]["opentox-validation"],'/training_test_split'), { :dataset_uri => data_uri, :algorithm_uri => @@alg, :prediction_feature => @@feature, :algorithm_params => @@alg_params } - puts "created validation via training test split "+vali_uri + log "created validation via training test split "+vali_uri raise "failed to prepare demo" unless vali_uri==File.join(@@config[:services]["opentox-validation"],'/1') Lib::Crossvalidation.auto_migrate! - cv_uri = RestClient.post File.join(@@config[:services]["opentox-validation"],'/crossvalidation'), { :dataset_uri => data_uri, + cv_uri = OpenTox::RestClientWrapper.post File.join(@@config[:services]["opentox-validation"],'/crossvalidation'), { :dataset_uri => data_uri, :algorithm_uri => @@alg, :prediction_feature => @@feature, :algorithm_params => @@alg_params, :num_folds => 5, :stratified => false } - puts "created crossvalidation "+cv_uri + log "created crossvalidation "+cv_uri raise "failed to prepare demo" unless cv_uri==File.join(@@config[:services]["opentox-validation"],'/crossvalidation/1') + delete_all(File.join(@@config[:services]["opentox-validation"],"/report/validation")) + val_report_uri = OpenTox::RestClientWrapper.post File.join(@@config[:services]["opentox-validation"],'/report/validation'), { :validation_uris => vali_uri } + log "created validation report: "+val_report_uri + raise "failed to prepare demo" unless val_report_uri==File.join(@@config[:services]["opentox-validation"],'/report/validation/1') + + delete_all(File.join(@@config[:services]["opentox-validation"],"/report/crossvalidation")) + cv_report_uri = OpenTox::RestClientWrapper.post File.join(@@config[:services]["opentox-validation"],'/report/crossvalidation'), { :validation_uris => cv_uri } + log "created crossvalidation report: "+cv_report_uri + raise "failed to prepare demo" unless cv_report_uri==File.join(@@config[:services]["opentox-validation"],'/report/crossvalidation/1') + log "done" + + @@summary + end + + + def self.test_examples + lines = transform_example.split("\n") + curl_call = false + curl_calls = [] + + lines.each do |line| + if line =~ /^\s*>>>\s*.*/ + line.gsub!(/^\s*>>>\s*/,"") + if line =~ /.*\s*\\s*$/ + curl_call = true + line.gsub!(/\s*\\s*$/," ") + else + curl_call = false + end + curl_calls.push( line ) + elsif curl_call + if line =~ /.*\s*\\s*$/ + curl_call = true + line.gsub!(/\s*\\s*$/," ") + else + curl_call = false + end + curl_calls[-1] = curl_calls[-1]+line + end + end + + @@summary = "" + curl_calls.each do |cmd| + log "testing: "+cmd + IO.popen(cmd.to_s+" 2> /dev/null") do |f| + while line = f.gets + #response += indent.to_s+line + end + end + log ($?==0)?"ok":"failed" + end + @@summary end -end
\ No newline at end of file + +end |