From 7c3bd90c26dfeea2db3cf74a1cefc23d8dece7c0 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 15 Mar 2016 17:40:40 +0100 Subject: validation tests pass --- test/classification.rb | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/classification.rb (limited to 'test/classification.rb') 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 -- cgit v1.2.3