Fixed bug in BP (introduced in commit b8f96214...) and added regression test for...
[libdai.git] / tests / testem / testem.cpp
index a6a62f2..05b6e2e 100644 (file)
@@ -1,22 +1,12 @@
-/*  Copyright (C) 2009  Charles Vaske  [cvaske at soe dot ucsc dot edu]
-    University of California Santa Cruz
-
-    This file is part of libDAI.
-
-    libDAI is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    libDAI is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with libDAI; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+/*  This file is part of libDAI - http://www.libdai.org/
+ *
+ *  libDAI is licensed under the terms of the GNU General Public License version
+ *  2, or (at your option) any later version. libDAI is distributed without any
+ *  warranty. See the file COPYING for more details.
+ *
+ *  Copyright (C) 2009  Charles Vaske  [cvaske at soe dot ucsc dot edu]
+ *  Copyright (C) 2009  University of California Santa Cruz
+ */
 
 
 #include <iostream>
@@ -32,7 +22,7 @@ using namespace std;
 using namespace dai;
 
 
-void usage( const stringmsg ) {
+void usage( const string &msg ) {
     cerr << msg << endl;
     cerr << "Usage:" << endl;
     cerr << " testem factorgraph.fg evidence.tab emconfig.em" << endl;
@@ -43,13 +33,13 @@ void usage( const string& msg ) {
 int main( int argc, char** argv ) {
     if( argc != 4 )
         usage("Incorrect number of arguments.");
-    
+
     FactorGraph fg;
     fg.ReadFromFile( argv[1] );
 
     PropertySet infprops;
-    infprops.Set( "verbose", (size_t)1 );
-    infprops.Set( "updates", string("HUGIN") );
+    infprops.set( "verbose", (size_t)0 );
+    infprops.set( "updates", string("HUGIN") );
     InfAlg* inf = newInfAlg( "JTREE", fg, infprops );
     inf->init();
 
@@ -59,19 +49,21 @@ int main( int argc, char** argv ) {
 
     cout << "Number of samples: " << e.nrSamples() << endl;
     for( Evidence::iterator ps = e.begin(); ps != e.end(); ps++ )
-        cout << "Sample #" << (ps - e.begin()) << " has " << ps->observations().size() << " observations." << endl;
+        cout << "Sample #" << (ps - e.begin()) << " has " << ps->size() << " observations." << endl;
 
     ifstream emstream( argv[3] );
     EMAlg em(e, *inf, emstream);
 
     while( !em.hasSatisfiedTermConditions() ) {
         Real l = em.iterate();
-        cout << "Iteration " << em.getCurrentIters() << " likelihood: " << l <<endl;
+        cout << "Iteration " << em.Iterations() << " likelihood: " << l <<endl;
     }
 
     cout << endl << "Inferred Factor Graph:" << endl << "######################" << endl;
     cout.precision(12);
     cout << inf->fg();
 
+    delete inf;
+
     return 0;
 }