diff --git a/tests/test-adjacency-list.cpp b/tests/test-adjacency-list.cpp
index 757c145..f4c0f27 100644
--- a/tests/test-adjacency-list.cpp
+++ b/tests/test-adjacency-list.cpp
@@ -33,17 +33,17 @@
   adjacentList1.insert(adjacent1);
   adjacentList2.insert(adjacent2);
 
-  BOOST_CHECK_EQUAL(adjacentList1.getSize(), 1);
-  BOOST_CHECK_EQUAL(adjacentList1.isEqual(adjacentList2), false);
+  BOOST_CHECK_EQUAL(adjacentList1.getSize(), (uint32_t)1);
+  BOOST_CHECK_EQUAL(adjacentList1 == adjacentList2, false);
 
   BOOST_CHECK(adjacentList1.isNeighbor("testname"));
   BOOST_CHECK_EQUAL(adjacentList1.isNeighbor("adjacent"), false);
 
   string n1 = "testname";
-  BOOST_CHECK_EQUAL(adjacentList1.getStatusOfNeighbor(n1), 0);
+  BOOST_CHECK_EQUAL(adjacentList1.getStatusOfNeighbor(n1), (uint32_t)0);
 
   adjacentList1.setStatusOfNeighbor(n1, 1);
-  BOOST_CHECK_EQUAL(adjacentList1.getStatusOfNeighbor(n1), 1);
+  BOOST_CHECK_EQUAL(adjacentList1.getStatusOfNeighbor(n1), (uint32_t)1);
 }
 
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests/test-adjacent.cpp b/tests/test-adjacent.cpp
index 90be869..e10e30b 100644
--- a/tests/test-adjacent.cpp
+++ b/tests/test-adjacent.cpp
@@ -21,7 +21,7 @@
 
   Adjacent adjacent1(ADJ_NAME_1);
   Adjacent adjacent2(ADJ_NAME_2);
-  BOOST_CHECK(adjacent1.isEqual(adjacent2));
+  BOOST_CHECK(adjacent1 == adjacent2);
 
   adjacent1.setLinkCost(10.5);
   BOOST_CHECK_CLOSE(adjacent1.getLinkCost(), 10.5, 0.0001);
diff --git a/tests/test-conf-file-processor.cpp b/tests/test-conf-file-processor.cpp
index 7b87fac..8ec3a4e 100644
--- a/tests/test-conf-file-processor.cpp
+++ b/tests/test-conf-file-processor.cpp
@@ -29,12 +29,12 @@
     "ndnname /ndn/memphis.edu/cs/macbook/name2\n\n\n"
     ;
 
-  ofstream config;
+  std::ofstream config;
   config.open("unit-test-nlsr.conf");
   config << CONFIG;
   config.close();
 
-  const string CONFIG_FILE = "unit-test-nlsr.conf";
+  const std::string CONFIG_FILE = "unit-test-nlsr.conf";
 
   ConfFileProcessor cfp1(nlsr1, CONFIG_FILE);
 
diff --git a/tests/test-conf-parameter.cpp b/tests/test-conf-parameter.cpp
index e376084..95ae19e 100644
--- a/tests/test-conf-parameter.cpp
+++ b/tests/test-conf-parameter.cpp
@@ -77,7 +77,7 @@
 
   BOOST_CHECK_EQUAL(cp1.getRootKeyPrefix(), "adminRootKey");
 
-  BOOST_CHECK_EQUAL(cp1.getInterestRetryNumber(), 2);
+  BOOST_CHECK_EQUAL(cp1.getInterestRetryNumber(), (uint32_t)2);
 
   BOOST_CHECK_EQUAL(cp1.getInterestResendTime(), 1000);
 
diff --git a/tests/test-lsa.cpp b/tests/test-lsa.cpp
index 715d19e..e7326b4 100644
--- a/tests/test-lsa.cpp
+++ b/tests/test-lsa.cpp
@@ -27,7 +27,7 @@
   NameLsa nlsa1("router1", 1, 12, 1800, npl1);
   NameLsa nlsa2("router2", 1, 12, 1500, npl1);
 
-  BOOST_CHECK_EQUAL(nlsa1.getLsType(), 1);
+  BOOST_CHECK_EQUAL(nlsa1.getLsType(), (uint8_t)1);
 
   BOOST_CHECK(nlsa1.getLifeTime() != nlsa2.getLifeTime());
 
@@ -47,12 +47,12 @@
   AdjLsa alsa1("router1", 2, 12, 1800, 1, adjList);
   AdjLsa alsa2("router1", 2, 12, 1800, 1, adjList);
 
-  BOOST_CHECK_EQUAL(alsa1.getLsType(), 2);
-  BOOST_CHECK_EQUAL(alsa1.getLsSeqNo(), 12);
-  BOOST_CHECK_EQUAL(alsa1.getLifeTime(), 1800);
-  BOOST_CHECK_EQUAL(alsa1.getNoLink(), 1);
+  BOOST_CHECK_EQUAL(alsa1.getLsType(), (uint8_t)2);
+  BOOST_CHECK_EQUAL(alsa1.getLsSeqNo(), (uint32_t)12);
+  BOOST_CHECK_EQUAL(alsa1.getLifeTime(), (uint32_t)1800);
+  BOOST_CHECK_EQUAL(alsa1.getNoLink(), (uint32_t)1);
 
-  BOOST_CHECK(alsa1.isEqual(alsa2));
+  BOOST_CHECK(alsa1.isEqualContent(alsa2));
 
   alsa1.addAdjacent(adj2);
 
@@ -69,7 +69,7 @@
   BOOST_CHECK_CLOSE(clsa1.getCorRadius(), 2.5, 0.0001);
   BOOST_CHECK_CLOSE(clsa1.getCorTheta(), 30.0, 0.0001);
 
-  BOOST_CHECK(clsa1.isEqual(clsa2));
+  BOOST_CHECK(clsa1.isEqualContent(clsa2));
 
   BOOST_CHECK_EQUAL(clsa1.getData(), clsa2.getData());
 }
diff --git a/tests/test-lsdb.cpp b/tests/test-lsdb.cpp
index efc6f4a..7511fdb 100644
--- a/tests/test-lsdb.cpp
+++ b/tests/test-lsdb.cpp
@@ -21,9 +21,9 @@
 
   NamePrefixList npl1;
 
-  string s1 = "name1";
-  string s2 = "name2";
-  string router1 = "router1/1";
+  std::string s1 = "name1";
+  std::string s2 = "name2";
+  std::string router1 = "router1/1";
 
   npl1.insert(s1);
   npl1.insert(s2);
diff --git a/tests/test-map.cpp b/tests/test-map.cpp
index ebbfb15..1d5d4d2 100644
--- a/tests/test-map.cpp
+++ b/tests/test-map.cpp
@@ -19,8 +19,8 @@
   std::string router1 = "r1";
   std::string router2 = "r2";
 
-  map1.addElement(router1);
-  map1.addElement(router2);
+  map1.addEntry(router1);
+  map1.addEntry(router2);
 
   BOOST_CHECK_EQUAL(map1.getMapSize(), 2);
 }
diff --git a/tests/test-nexthop-list.cpp b/tests/test-nexthop-list.cpp
index 10222e8..cdf0c3e 100644
--- a/tests/test-nexthop-list.cpp
+++ b/tests/test-nexthop-list.cpp
@@ -20,10 +20,10 @@
   NexthopList nhl1;
 
   nhl1.addNextHop(np1);
-  BOOST_CHECK_EQUAL(nhl1.getSize(), 1);
+  BOOST_CHECK_EQUAL(nhl1.getSize(), (uint32_t)1);
 
   nhl1.removeNextHop(np1);
-  BOOST_CHECK_EQUAL(nhl1.getSize(), 0);
+  BOOST_CHECK_EQUAL(nhl1.getSize(), (uint32_t)0);
 }
 
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests/test-nexthop.cpp b/tests/test-nexthop.cpp
index b0bb90d..0cdf23c 100644
--- a/tests/test-nexthop.cpp
+++ b/tests/test-nexthop.cpp
@@ -20,7 +20,7 @@
 
   np1.setRouteCost(10.5);
 
-  BOOST_CHECK_EQUAL(np1.getConnectingFace(), 1);
+  BOOST_CHECK_EQUAL(np1.getConnectingFace(), (uint32_t)1);
   BOOST_CHECK_CLOSE(np1.getRouteCost(), 10.5, 0.0001);
 }
 
diff --git a/tests/test-sequencing-manager.cpp b/tests/test-sequencing-manager.cpp
index 9ae9d55..bdf19b2 100644
--- a/tests/test-sequencing-manager.cpp
+++ b/tests/test-sequencing-manager.cpp
@@ -18,11 +18,11 @@
 
   SequencingManager sm2(sm1.getCombinedSeqNo());
 
-  BOOST_CHECK_EQUAL(sm2.getNameLsaSeq(), 120);
+  BOOST_CHECK_EQUAL(sm2.getNameLsaSeq(), (uint32_t)120);
 
-  BOOST_CHECK_EQUAL(sm2.getAdjLsaSeq(), 121);
+  BOOST_CHECK_EQUAL(sm2.getAdjLsaSeq(), (uint32_t)121);
 
-  BOOST_CHECK_EQUAL(sm2.getCorLsaSeq(), 122);
+  BOOST_CHECK_EQUAL(sm2.getCorLsaSeq(), (uint32_t)122);
 }
 
 BOOST_AUTO_TEST_SUITE_END()
