summaryrefslogtreecommitdiff
path: root/validation/validation_test.rb
blob: b1fbf25bcc00e2c5138f0d3d7879a19008ef6d7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
require "uri"
require "yaml"
ENV['RACK_ENV'] = 'test'
require 'application.rb'
require 'test/unit'
require 'rack/test'
require 'lib/test_util.rb'
require 'test/test_examples.rb'

LOGGER = MyLogger.new(STDOUT)
LOGGER.datetime_format = "%Y-%m-%d %H:%M:%S "
LOGGER.formatter = Logger::Formatter.new

#Rack::Test::DEFAULT_HOST = "localhost" #"/validation"
module Sinatra
  module UrlForHelper
    BASE = "http://localhost/validation"
   def url_for url_fragment, mode=:path_only
      case mode
      when :path_only
        raise "not impl"
      when :full
      end
      "#{BASE}#{url_fragment}"
    end
  end
end


class ValidationTest < Test::Unit::TestCase
  include Rack::Test::Methods
  include Lib::TestUtil
  
  def test_it
    $test_case = self
    
    #get "/1",nil,'HTTP_ACCEPT' => "text/html" 
#    get "/",nil,'HTTP_ACCEPT' => "text/html" 
    #puts last_response.body
    
#    d = OpenTox::Dataset.find("http://ot-dev.in-silico.ch/dataset/307")
#    puts d.compounds.inspect
#    exit
    
    #get "?model=http://localhost/model/1" 
#    get "/crossvalidation/3/predictions"
#    puts last_response.body

#    post "/validate_datasets",{
#      :test_dataset_uri=>"http://apps.deaconsult.net:8080/ambit2/dataset/R3924",
#      :prediction_dataset_uri=>"http://apps.ideaconsult.net:8080/ambit2/dataset/R3924?feature_uris[]=http%3A%2F%2Fapps.ideaconsult.net%3A8080%2Fambit2%2Fmodel%2F52%2Fpredicted",
#      #:test_target_dataset_uri=>"http://localhost/dataset/202",
#      :prediction_feature=>"http://apps.ideaconsult.net:8080/ambit2/feature/21715",
#      :predicted_feature=>"http://apps.ideaconsult.net:8080/ambit2/feature/28944",
#      :regression=>"true"}
#      #:classification=>"true"}
#    puts last_response.body
    
    #post "/crossvalidation/cleanup"
    #puts last_response.body

    #get "/crossvalidation/4/statistics"
#    post "",:model_uri=>"http://localhost/model/1",:test_dataset_uri=>"http://localhost/dataset/3",
#      :test_target_dataset_uri=>"http://localhost/dataset/1"

#    get "/crossvalidation/2",nil,'HTTP_ACCEPT' => "application/rdf+xml" 
    #puts last_response.body
    
    #get "/crossvalidation?model_uri=lazar"
#    post "/test_validation",:select=>"6d" #,:report=>"yes,please"
    #puts last_response.body
    
#    post "/validate_datasets",{
#      :test_dataset_uri=>"http://localhost/dataset/204",
#      :prediction_dataset_uri=>"http://localhost/dataset/206",
#      :test_target_dataset_uri=>"http://localhost/dataset/202",
#      :prediction_feature=>"http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk",
#      :predicted_feature=>"http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk_lazar_regression",
#      :regression=>"true"}
#      #:classification=>"true"}
#    puts last_response.body
    
    #run_test("1b","http://localhost/validation/28")#,"http://localhost/validation/394");
    
    #run_test("7b","http://localhost/validation/21")
    
    #run_test("3a","http://localhost/validation/crossvalidation/4")
    #run_test("3b","http://localhost/validation/crossvalidation/3")
    
    #run_test("8a", "http://localhost/validation/crossvalidation/6")
    #run_test("8b", "http://localhost/validation/crossvalidation/5")

    #run_test("11b", "http://localhost/validation/crossvalidation/2" )# //localhost/validation/42")#, "http://localhost/validation/report/validation/8") #,"http://localhost/validation/report/validation/36") #, "http://localhost/validation/321")
   # run_test("7a","http://localhost/validation/40") #,"http://localhost/validation/crossvalidation/10") #, "http://localhost/validation/321")
    #run_test("8b", "http://localhost/validation/crossvalidation/4")
 
    #puts Nightly.build_nightly("1")
    
   prepare_examples
    #do_test_examples # USES CURL, DO NOT FORGET TO RESTART VALIDATION SERVICE
    #do_test_examples_ortona
  end

  def app
    Sinatra::Application
  end
  
  def run_test(select=nil, validation_uri=nil, report_uri=nil)
    puts ValidationExamples.list unless select
    validationExamples = ValidationExamples.select(select)
    validationExamples.each do |vv|
      vv.each do |v| 
        ex = v.new
        ex.validation_uri = validation_uri
        unless ex.validation_uri
          ex.upload_files
          ex.check_requirements
          ex.validate
          LOGGER.debug "validation done '"+ex.validation_uri.to_s+"'"
        end
        ex.report_uri = report_uri
        unless ex.report_uri
          ex.report
        end
        ex.verify_yaml
        ex.compare_yaml_vs_rdf
      end
    end
  end
  
  def prepare_examples
    get '/prepare_examples'
  end  
  
 def do_test_examples # USES CURL, DO NOT FORGET TO RESTART
   post '/test_examples'
 end
 
  def do_test_examples_ortona 
   post '/test_examples',:examples=>"http://ortona.informatik.uni-freiburg.de/validation/examples"
 end
  
end