//////////////////////////////////////////////////////////////// //! rcsid="$Id: testNumPDF.cc,v 1.7 1999/06/17 15:34:56 ees1cg Exp $" #include "amma/Num/NumPDFNormal.hh" #include "amma/Num/NumPDFkNN.hh" #include "amma/Num/NumPDFModel.hh" #include "amma/Num/NumModelClosest.hh" #include "amma/Num/NumMagnitudeEuclidean.hh" #include "amma/Vector2d.hh" #include "amma/EntryPnt.hh" #include "amma/Filename.hh" #include // FIXME :- This runs the code but doesn't check the results. int testNumPDF(int n,char **argv) { // Setup training data NumVLDataSetC trainL; // Labelled samples trainL.Append (Vector2dC(1,1),0); trainL.Append (Vector2dC(1,-1),0); trainL.Append (Vector2dC(2,0),0); trainL.Append (Vector2dC(-1,1),1); trainL.Append (Vector2dC(1,-1),1); trainL.Append (Vector2dC(-2,0),1); NumVVDataSetC trainP; // Soft probability samples trainP.Append (Vector2dC(1,1),Vector2dC(1.0,0.1)); trainP.Append (Vector2dC(1,-1),Vector2dC(1.0,0.1)); trainP.Append (Vector2dC(2,0),Vector2dC(1.0,0.1)); trainP.Append (Vector2dC(-1,1),Vector2dC(0.1,0.5)); trainP.Append (Vector2dC(-1,-1),Vector2dC(0.1,0.5)); trainP.Append (Vector2dC(-2,0),Vector2dC(0.1,0.5)); NumModelClosestC model; NumMagnitudeEuclideanC magnitude; // Setup PDFs SArray1dC pdf (3); pdf[0] = NumPDFNormalC (); pdf[1] = NumPDFModelC (model); pdf[2] = NumPDFkNNC (2,magnitude); FOR_SARRAY1 (pdf,i) { pdf[i].Fit (trainL); cout << pdf[i].GetInfo () << "\n"; cout << "Fitted using labelled samples.\n"; for (ConstDLIterC elem1 (trainL); elem1.IsElm(); elem1.Next()) cout << elem1.Data().Input() << " " << elem1.Data().Output() << " " << pdf[i](elem1.Data().Input()) << "\n"; pdf[i].Fit (trainP); cout << pdf[i].GetInfo () << "\n"; cout << "Fitted using samples with corresponding soft probabilities.\n"; for (ConstDLIterC elem2 (trainP); elem2.IsElm(); elem2.Next()) cout << elem2.Data().Input() << " " << elem2.Data().Output() << " " << pdf[i](elem2.Data().Input()) << "\n"; } cout << "TEST PASSED.\n"; return 0; } AMMA_ENTRY_POINT(testNumPDF);