summaryrefslogtreecommitdiff
path: root/test/service-test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/service-test.rb')
-rw-r--r--test/service-test.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/service-test.rb b/test/service-test.rb
new file mode 100644
index 0000000..de2cc0f
--- /dev/null
+++ b/test/service-test.rb
@@ -0,0 +1,41 @@
+require 'minitest/autorun'
+require 'rest-client'
+require 'nokogiri'
+require '~/lazar/lib/lazar.rb'
+$models = OpenTox::Model::Validation.all
+$r_model = $models.select{|m| m if m.model.name == "LOAEL (training_log10)"}[0].id.to_s
+$c_model = $models.select{|m| m if m.model.name == "Mutagenicity (kazius)"}[0].id.to_s
+
+class WebServiceTests < Minitest::Test
+
+ def test_prediction
+
+ # regression
+ response = RestClient.post "http://localhost:8088/predict", {identifier: "O=[N+]([O-])c1ccccc1", selection: {$r_model=>""}}
+ xml = Nokogiri::HTML.parse(response.body)
+ value = xml.css('td')[1].css('p')[2].text.split[1].to_f
+ assert value.between?(0.06,0.09)
+
+ # classification
+ response = RestClient.post "http://localhost:8088/predict", {identifier: "O=[N+]([O-])c1ccccc1", selection: {$c_model=>""}}
+ xml = Nokogiri::HTML.parse(response.body)
+ value = xml.css('td')[1].css('p')[4].text.split.last
+ assert_equal "mutagenic", value
+ end
+
+ def test_validation
+
+ # regression
+ response = RestClient.get "http://localhost:8088/predict/modeldetails/#{$r_model}"
+ xml = Nokogiri::HTML.parse(response.body)
+ links = xml.css('a')
+ assert_equal "Algorithm::Caret.rf", links[3].children.text.strip
+
+ # classification
+ response = RestClient.get "http://localhost:8088/predict/modeldetails/#{$c_model}"
+ xml = Nokogiri::HTML.parse(response.body)
+ links = xml.css('a')
+ assert_equal "Algorithm::Classification.weighted_majority_vote", links[3].children.text.strip
+ end
+
+end