diff options
author | Christoph Helma <helma@in-silico.ch> | 2016-03-15 17:40:40 +0100 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2016-03-15 17:40:40 +0100 |
commit | 7c3bd90c26dfeea2db3cf74a1cefc23d8dece7c0 (patch) | |
tree | 045d18b43e30ef3bf9a548230e45986b591535a6 /test/classification.rb | |
parent | 0c5d2e678908a2d4aea43efbedbedc2c0439be30 (diff) |
validation tests pass
Diffstat (limited to 'test/classification.rb')
-rw-r--r-- | test/classification.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/classification.rb b/test/classification.rb new file mode 100644 index 0000000..bedbe14 --- /dev/null +++ b/test/classification.rb @@ -0,0 +1,41 @@ +require_relative "setup.rb" + +class LazarClassificationTest < MiniTest::Test + + def test_lazar_classification + training_dataset = Dataset.from_csv_file File.join(DATA_DIR,"hamster_carcinogenicity.csv") + model = Model::LazarClassification.create training_dataset + + [ { + :compound => OpenTox::Compound.from_inchi("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"), + :prediction => "false", + :confidence => 0.25281385281385277, + :nr_neighbors => 11 + },{ + :compound => OpenTox::Compound.from_smiles("c1ccccc1NN"), + :prediction => "false", + :confidence => 0.3639589577089577, + :nr_neighbors => 14 + } ].each do |example| + prediction = model.predict example[:compound] + assert_equal example[:prediction], prediction[:value] + #assert_equal example[:confidence], prediction[:confidence] + #assert_equal example[:nr_neighbors], prediction[:neighbors].size + end + + compound = Compound.from_smiles "CCO" + prediction = model.predict compound + assert_equal ["false"], prediction[:database_activities] + assert_equal "true", prediction[:value] + + # make a dataset prediction + compound_dataset = OpenTox::Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.mini.csv") + prediction = model.predict compound_dataset + assert_equal compound_dataset.compounds, prediction.compounds + + assert_equal "Could not find similar compounds with experimental data in the training dataset.", prediction.data_entries[7][3] + assert_equal "1 compounds have been removed from neighbors, because they have the same structure as the query compound.", prediction.data_entries[14][3] + # cleanup + [training_dataset,model,compound_dataset].each{|o| o.delete} + end +end |