Added unit testing framework
authorJoris Mooij <joris.mooij@tuebingen.mpg.de>
Thu, 18 Mar 2010 09:35:07 +0000 (10:35 +0100)
committerJoris Mooij <joris.mooij@tuebingen.mpg.de>
Thu, 18 Mar 2010 09:35:07 +0000 (10:35 +0100)
ChangeLog
Makefile
Makefile.CYGWIN
Makefile.LINUX
Makefile.MACOSX
Makefile.WINDOWS
tests/unit/var.cpp [new file with mode: 0644]

index dbadbac..772351e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 git HEAD
 --------
 
+* Added unit testing framework
 * Added initialization of TRWBP weights by sampling spanning trees
 * Cleaned up MR code:
   - rewrote response propagation implementation with help of BBP
index f3b222b..2363898 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -34,7 +34,7 @@ else
 endif
 
 # Define build targets
-TARGETS=tests utils lib examples testregression testem
+TARGETS=tests utils lib examples unittests testregression testem
 ifdef WITH_DOC
   TARGETS:=$(TARGETS) doc
 endif
@@ -122,7 +122,11 @@ examples : examples/example$(EE) examples/example_bipgraph$(EE) examples/example
 
 matlabs : matlab/dai$(ME) matlab/dai_readfg$(ME) matlab/dai_writefg$(ME) matlab/dai_potstrength$(ME)
 
-tests : tests/testdai$(EE) tests/testem/testem$(EE) tests/testbbp$(EE)
+unittests : tests/unit/var$(EE)
+       echo Running unit tests...
+       tests/unit/var
+
+tests : tests/testdai$(EE) tests/testem/testem$(EE) tests/testbbp$(EE) $(unittests)
 
 utils : utils/createfg$(EE) utils/fg2dot$(EE) utils/fginfo$(EE)
 
@@ -245,13 +249,20 @@ examples/example_sprinkler_em$(EE) : examples/example_sprinkler_em.cpp $(HEADERS
        $(CC) $(CCO)examples/example_sprinkler_em$(EE) examples/example_sprinkler_em.cpp $(LIBS)
 
 
+# UNIT TESTS
+#############
+
+tests/unit/var$(EE) : tests/unit/var.cpp $(HEADERS) $(LIB)/libdai$(LE)
+       $(CC) $(CCO)tests/unit/var$(EE) tests/unit/var.cpp $(LIBS) $(BOOSTLIBS_UTF)
+
+
 # TESTS
 ########
 
 tests/testdai$(EE) : tests/testdai.cpp $(HEADERS) $(LIB)/libdai$(LE)
-       $(CC) $(CCO)tests/testdai$(EE) tests/testdai.cpp $(LIBS) $(BOOSTLIBS)
+       $(CC) $(CCO)tests/testdai$(EE) tests/testdai.cpp $(LIBS) $(BOOSTLIBS_PO)
 tests/testem/testem$(EE) : tests/testem/testem.cpp $(HEADERS) $(LIB)/libdai$(LE)
-       $(CC) $(CCO)$@ $< $(LIBS) $(BOOSTLIBS)
+       $(CC) $(CCO)$@ $< $(LIBS) $(BOOSTLIBS_PO)
 
 tests/testbbp$(EE) : tests/testbbp.cpp $(HEADERS) $(LIB)/libdai$(LE)
        $(CC) $(CCO)tests/testbbp$(EE) tests/testbbp.cpp $(LIBS)
@@ -280,7 +291,7 @@ matlab$(OE) : $(SRC)/matlab/matlab.cpp $(INC)/matlab/matlab.h $(HEADERS)
 ########
 
 utils/createfg$(EE) : utils/createfg.cpp $(HEADERS) $(LIB)/libdai$(LE)
-       $(CC) $(CCO)utils/createfg$(EE) utils/createfg.cpp $(LIBS) $(BOOSTLIBS)
+       $(CC) $(CCO)utils/createfg$(EE) utils/createfg.cpp $(LIBS) $(BOOSTLIBS_PO)
 
 utils/fg2dot$(EE) : utils/fg2dot.cpp $(HEADERS) $(LIB)/libdai$(LE)
        $(CC) $(CCO)utils/fg2dot$(EE) utils/fg2dot.cpp $(LIBS)
index 7ca8342..0cbc567 100644 (file)
@@ -45,8 +45,9 @@ CCINC=-Iinclude -I/usr/local/include/boost-1_37
 # LINKER
 # Standard libraries to include
 LIBS=-ldai
-# For linking with the BOOST Program Options library
-BOOSTLIBS=-lboost_program_options-gcc34-mt
+# For linking with BOOST libraries
+BOOSTLIBS_PO=-lboost_program_options-gcc34-mt
+BOOSTLIBS_UTF=-lboost_unit_test_framework-gcc34-mt
 # Additional library search paths for linker
 CCLIB=-Llib
 
index d885bac..70145b3 100644 (file)
@@ -45,8 +45,9 @@ CCINC=-Iinclude
 # LINKER
 # Standard libraries to include
 LIBS=-ldai
-# For linking with the BOOST Program Options library
-BOOSTLIBS=-lboost_program_options-mt
+# For linking with BOOST libraries
+BOOSTLIBS_PO=-lboost_program_options
+BOOSTLIBS_UTF=-lboost_unit_test_framework
 # Additional library search paths for linker
 CCLIB=-Llib
 
index 129d7b6..baf5abd 100644 (file)
@@ -44,8 +44,9 @@ CCINC=-Iinclude -I/opt/local/include
 # LINKER
 # Standard libraries to include
 LIBS=-ldai
-# For linking with the BOOST Program Options library
-BOOSTLIBS=-lboost_program_options-mt
+# For linking with BOOST libraries
+BOOSTLIBS_PO=-lboost_program_options
+BOOSTLIBS_UTF=-lboost_unit_test_framework
 # Additional library search paths for linker
 CCLIB=-Llib -L/opt/local/lib
 
index c09be0c..f404676 100644 (file)
@@ -45,8 +45,9 @@ CCINC=/Iinclude /IE:\boost_1_42_0
 # LINKER
 # Standard libraries to include
 LIBS=/link $(LIB)/libdai$(LE)
-# For linking with the BOOST Program Options library
-BOOSTLIBS=/LIBPATH:E:\boost_1_42_0\stage\lib
+# For linking with BOOST libraries
+BOOSTLIBS_PO=/LIBPATH:E:\boost_1_42_0\stage\lib
+BOOSTLIBS_UTF=/LIBPATH:E:\boost_1_42_0\stage\lib
 # Additional library search paths for linker
 # (For some reason, we have to add the VC library path, although it is in the environment)
 CCLIB=/LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB" /LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB" /LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib"
diff --git a/tests/unit/var.cpp b/tests/unit/var.cpp
new file mode 100644 (file)
index 0000000..80d1c43
--- /dev/null
@@ -0,0 +1,14 @@
+#define BOOST_TEST_DYN_LINK
+
+#include <dai/var.h>
+
+using namespace dai;
+
+#define BOOST_TEST_MODULE MyTest
+
+#include <boost/test/unit_test.hpp>
+
+BOOST_AUTO_TEST_CASE( my_test ) {
+    Var x( 0, 2 );
+    BOOST_CHECK( x.states() == 2 );
+}