diff options
author | Christoph Helma <helma@in-silico.ch> | 2010-11-19 17:31:27 +0100 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2010-11-19 17:31:27 +0100 |
commit | 2824a2fdb2aa308ad77ead17ee6c7cba9c69ab46 (patch) | |
tree | 807aa180a7edd24c044bb8f651adeb72e8e37d13 /dataset.rb | |
parent | 533e1b918a80d23af78a886442d4c82d853f829f (diff) |
Initial sketch of unit tests, cucumber tests are obsolete
Diffstat (limited to 'dataset.rb')
-rw-r--r-- | dataset.rb | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/dataset.rb b/dataset.rb new file mode 100644 index 0000000..1d52b09 --- /dev/null +++ b/dataset.rb @@ -0,0 +1,201 @@ +require 'rubygems' +require 'opentox-ruby-api-wrapper' +require 'test/unit' +require 'validate-owl' + +class DatasetTest < Test::Unit::TestCase + + def setup + #@new_dataset = OpenTox::Dataset.from_csv(File.open("data/hamster_carcinogenicity.csv").read) + #@new_dataset.add_metadata( OT.hasSource => "data/hamster_carcinogenicity.csv", DC.creator => "opentox-test", DC.title => "Hamster Carcinogenicity" ) + #@new_dataset.save + @datasets = { + #@new_dataset.uri => { + "http://localhost/dataset/1" => { + :nr_compounds => 85, + :nr_features => 1, + :nr_dataset_features => 1, + :nr_data_entries => 85 + }, + "http://apps.ideaconsult.net:8080/ambit2/dataset/2698" => { + :nr_compounds => 3, + :nr_features => 8, + :nr_dataset_features => 37, + :nr_data_entries => 3 + } + } + end + + def teardown + #@new_dataset.delete + end + +=begin +=end + def test_save_external + + @dataset = OpenTox::Dataset.find "http://apps.ideaconsult.net:8080/ambit2/dataset/2698" + #File.open("test.rdf","w+"){|f| f.puts @dataset.to_rdfxml} + @dataset.uri = "http://apps.ideaconsult.net:8080/ambit2/dataset" + uri = @dataset.save + puts uri + #@dataset.load_csv(File.open("data/hamster_carcinogenicity.csv").read) + #@dataset.save + end + + def test_create + dataset = OpenTox::Dataset.create + dataset.save + puts dataset.uri + assert_kind_of URI::HTTP, URI.parse(dataset.uri) + #dataset.delete + end + + def test_all + datasets = OpenTox::Dataset.all + assert_kind_of Array, datasets + end + + def test_owl + validate_owl "http://localhost/dataset/1" + # ambit datasets do ot validate + #@datasets.keys.each {|d| validate_owl d } + end + + def test_from_yaml + # TODO: fix uri + @dataset = OpenTox::Dataset.new + @dataset.load_yaml(File.open("data/hamster_carcinogenicity.yaml").read) + hamster_carc? + end + + def test_rest_csv + uri = OpenTox::RestClientWrapper.post('http://localhost/dataset',{:accept => "text/uri-list"}, {:file => File.new("data/hamster_carcinogenicity.csv")}).to_s.chomp + @dataset = OpenTox::Dataset.new uri + @dataset.load_all + hamster_carc? + #puts @dataset.to_yaml + #@dataset.delete + end + + def test_multicolumn_csv + uri = OpenTox::RestClientWrapper.post('http://localhost/dataset',{:accept => "text/uri-list"}, {:file => File.new("data/multicolumn.csv")}).to_s.chomp + puts uri + @dataset = OpenTox::Dataset.new uri + @dataset.load_all + #puts @dataset.to_yaml + assert_equal 5, @dataset.features.size + assert_equal 4, @dataset.compounds.size + @dataset.delete + end + + def test_from_csv + @dataset = OpenTox::Dataset.new + @dataset.load_csv(File.open("data/hamster_carcinogenicity.csv").read) + hamster_carc? + end + + def test_from_excel + @dataset = OpenTox::Dataset.new + @dataset.load_spreadsheet(Excel.new("data/hamster_carcinogenicity.xls")) + hamster_carc? + #@dataset.delete + end + + def test_load_metadata + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.find(uri) + #puts @dataset.inspect + assert_not_nil @dataset.metadata[DC.title] + end + end + + def test_load_compounds + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_compounds + assert_equal @dataset.compounds.size,data[:nr_compounds] + end + end + + def test_load_features + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_features + #puts @dataset.features.to_yaml + assert_equal @dataset.features.keys.size,data[:nr_dataset_features] + end + end + + def test_load_all + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_all + validate data + end + end + + def test_yaml + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_all + @dataset = YAML.load @dataset.to_yaml + validate data + end + end + + def test_csv + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_all + csv = @dataset.to_csv.split("\n") + assert_equal csv.size, data[:nr_compounds]+1 + assert_equal csv.first.split(", ").size, data[:nr_dataset_features]+1 + end + end + + def test_excel + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_all + book = @dataset.to_spreadsheet + assert_kind_of Spreadsheet::Workbook, book + #File.open("#{@dataset.id}.xls","w+"){|f| book.write f.path} + end + end + + def test_ntriples + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_all + #puts @dataset.to_ntriples + assert_kind_of String, @dataset.to_ntriples + end + end + + def test_owl + @datasets.each do |uri,data| + @dataset = OpenTox::Dataset.new(uri) + @dataset.load_all + #puts @dataset.to_rdfxml + assert_kind_of String, @dataset.to_rdfxml + end + end +=begin +=end + def validate(data) + #puts @dataset.yaml + assert_kind_of OpenTox::Dataset, @dataset + assert_equal @dataset.data_entries.size, data[:nr_data_entries] + assert_equal @dataset.compounds.size, data[:nr_compounds] + assert_equal @dataset.features.size, data[:nr_dataset_features] + assert_equal @dataset.uri, @dataset.metadata[XSD.anyURI] + end + + def hamster_carc? + assert_kind_of OpenTox::Dataset, @dataset + assert_equal 85, @dataset.data_entries.size + assert_equal 85, @dataset.compounds.size + assert_equal @dataset.uri, @dataset.metadata[XSD.anyURI] + end +end |