Various fixes to make libDAI build successfully under modern OSX versions
[libdai.git] / tests / testdai.cpp
index 93416e0..d15f30a 100644 (file)
@@ -1,11 +1,8 @@
 /*  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) 2006-2011, The libDAI authors. All rights reserved.
  *
- *  Copyright (C) 2006-2010  Joris Mooij  [joris dot mooij at libdai dot org]
- *  Copyright (C) 2006-2007  Radboud University Nijmegen, The Netherlands
+ *  Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  */
 
 
@@ -124,7 +121,7 @@ class TestDAI {
                     logZ = obj->logZ();
                     has_logZ = true;
                 } catch( Exception &e ) {
-                    if( e.code() == Exception::NOT_IMPLEMENTED )
+                    if( e.getCode() == Exception::NOT_IMPLEMENTED )
                         has_logZ = false;
                     else
                         throw;
@@ -135,7 +132,7 @@ class TestDAI {
                     maxdiff = obj->maxDiff();
                     has_maxdiff = true;
                 } catch( Exception &e ) {
-                    if( e.code() == Exception::NOT_IMPLEMENTED )
+                    if( e.getCode() == Exception::NOT_IMPLEMENTED )
                         has_maxdiff = false;
                     else
                         throw;
@@ -146,7 +143,7 @@ class TestDAI {
                     iters = obj->Iterations();
                     has_iters = true;
                 } catch( Exception &e ) {
-                    if( e.code() == Exception::NOT_IMPLEMENTED )
+                    if( e.getCode() == Exception::NOT_IMPLEMENTED )
                         has_iters = false;
                     else
                         throw;
@@ -163,7 +160,7 @@ class TestDAI {
                     try {
                         facMarginals.push_back( obj->beliefF( I ) );
                     } catch( Exception &e ) {
-                        if( e.code() == Exception::BELIEF_NOT_AVAILABLE )
+                        if( e.getCode() == Exception::BELIEF_NOT_AVAILABLE )
                             facMarginals.push_back( Factor( obj->fg().factor(I).vars(), INFINITY ) );
                         else
                             throw;
@@ -330,14 +327,6 @@ int main( int argc, char *argv[] ) {
             // Parse method
             pair<string, PropertySet> meth = parseNameProperties( methods[m], Aliases );
 
-            // Check whether name is valid
-            size_t n = 0;
-            for( ; strlen( DAINames[n] ) != 0; n++ )
-                if( meth.first == DAINames[n] )
-                    break;
-            if( strlen( DAINames[n] ) == 0 )
-                DAI_THROWE(UNKNOWN_DAI_ALGORITHM,string("Unknown DAI algorithm \"") + meth.first + string("\" in \"") + methods[m] + string("\""));
-
             // Construct object for running the method
             TestDAI testdai(fg, meth.first, meth.second );
 
@@ -372,7 +361,7 @@ int main( int argc, char *argv[] ) {
             // If this is not the base method
             if( m > 0 ) {
                 cout.setf( ios_base::scientific );
-                cout.precision( 3 );
+                cout.precision( 2 );
 
                 // Output maximum error in variable marginals
                 Real mev = clipReal( testdai.maxVarErr(), 1e-9 );
@@ -408,9 +397,9 @@ int main( int argc, char *argv[] ) {
                 // Output maximum difference in last iteration
                 if( testdai.has_maxdiff ) {
                     Real md = clipReal( testdai.maxdiff, 1e-9 );
-                    if( isnan( mev ) )
+                    if( dai::isnan( mev ) )
                         md = mev;
-                    if( isnan( aev ) )
+                    if( dai::isnan( aev ) )
                         md = aev;
                     if( md == INFINITY )
                         md = 1.0;