# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' ######################### # change 'tests => 1' to 'tests => last_test_to_print'; use Test; BEGIN { plan tests => 1 }; use Algorithm::SVM::DataSet; use Algorithm::SVM; ok(1); # If we made it this far, we're ok. ######################### # Insert your test code below, the Test module is use()ed here so read # its man page ( perldoc Test ) for help writing this test script. print("Creating new Algorithm::SVM\n"); my $svm = new Algorithm::SVM(Model => 'sample.model'); ok(ref($svm) ne "", 1); print("Creating new Algorithm::SVM::DataSet objects\n"); my $ds1 = new Algorithm::SVM::DataSet(Label => 1); my $ds2 = new Algorithm::SVM::DataSet(Label => 2); my $ds3 = new Algorithm::SVM::DataSet(Label => 3); ok(ref($ds1) ne "", 1); ok(ref($ds2) ne "", 1); ok(ref($ds3) ne "", 1); print("Adding attributes to Algorithm::SVM::DataSet objects\n"); my @d1 = (0.0424107142857143, 0.0915178571428571, 0.0401785714285714, 0.0156250000000000, 0.0156250000000000, 0.0223214285714286, 0.0223214285714286, 0.0825892857142857, 0.1205357142857140, 0.0736607142857143, 0.0535714285714286, 0.0535714285714286, 0.0178571428571429, 0.0357142857142857, 0.1116071428571430, 0.0334821428571429, 0.0223214285714286, 0.0602678571428571, 0.0200892857142857, 0.0647321428571429); my @d2 = (0.0673076923076923, 0.11538461538461500, 0.0480769230769231, 0.0480769230769231, 0.00961538461538462, 0.0192307692307692, 0.0000000000000000, 0.08653846153846150, 0.1634615384615380, 0.0865384615384615, 0.03846153846153850, 0.0288461538461538, 0.0192307692307692, 0.01923076923076920, 0.0000000000000000, 0.0961538461538462, 0.02884615384615380, 0.0673076923076923, 0.0288461538461538, 0.02884615384615380); my @d3 = (0.0756756756756757, 0.0594594594594595, 0.0378378378378378, 0.0216216216216216, 0.0432432432432432, 0.0000000000000000, 0.0162162162162162, 0.0648648648648649, 0.1729729729729730, 0.0432432432432432, 0.0864864864864865, 0.1297297297297300, 0.0108108108108108, 0.0108108108108108, 0.0162162162162162, 0.0486486486486487, 0.0324324324324324, 0.0216216216216216, 0.0594594594594595, 0.0486486486486487); $ds1->attribute($_, $d1[$_ - 1]) for(1..scalar(@d1)); $ds2->attribute($_, $d2[$_ - 1]) for(1..scalar(@d2)); $ds3->attribute($_, $d3[$_ - 1]) for(1..scalar(@d3)); ok(1); print("Checking predictions on loaded model\n"); ok($svm->predict($ds1) == 10,1); ok($svm->predict($ds2) == 0,1); ok($svm->predict($ds3) == -10,1); print("Saving model\n"); ok($svm->save('sample.model.1'), 1); print("Loading saved model\n"); ok($svm->load('sample.model.1'), 1); print("Checking NRClass\n"); ok($svm->getNRClass(), 3); print("Checking model labels\n"); ok($svm->getLabels(), (10, 0, -10));