summaryrefslogtreecommitdiff
path: root/example.rb
diff options
context:
space:
mode:
authorMartin Gütlein <martin.guetlein@gmail.com>2010-01-12 11:14:02 +0100
committerMartin Gütlein <martin.guetlein@gmail.com>2010-01-12 11:14:02 +0100
commit037e9dded9dc0e0708ebacc7a8e987fcf1cc9d59 (patch)
tree98351f804fe98c7179d3cdcd9477a461868665fe /example.rb
parent86f056bbb8f8b083313a8dd55b1b8aa47574afe1 (diff)
added report examples and example tests, new module Validation
Diffstat (limited to 'example.rb')
-rw-r--r--example.rb85
1 files changed, 75 insertions, 10 deletions
diff --git a/example.rb b/example.rb
index e58e5f6..eb424b1 100644
--- a/example.rb
+++ b/example.rb
@@ -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