Merge pull request #1248 from ScottMcMichael/fix_vector_values_deserialize
						commit
						0af17f438f
					
				|  | @ -113,6 +113,7 @@ private: | |||
|   template<class Archive> | ||||
|   void load(Archive& ar, const unsigned int /*version*/) | ||||
|   { | ||||
|     this->clear(); | ||||
|     // Load into STL container and then fill our map
 | ||||
|     FastVector<std::pair<KEY, VALUE> > map; | ||||
|     ar & BOOST_SERIALIZATION_NVP(map); | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ | |||
| 
 | ||||
| #include <gtsam/inference/Key.h> | ||||
| 
 | ||||
| #include <gtsam/base/ConcurrentMap.h> | ||||
| #include <gtsam/base/Matrix.h> | ||||
| #include <gtsam/base/MatrixSerialization.h> | ||||
| #include <gtsam/base/Vector.h> | ||||
|  | @ -106,6 +107,39 @@ TEST (Serialization, matrix_vector) { | |||
|   EXPECT(equalityBinary<Matrix>((Matrix(2, 2) << 1.0, 2.0, 3.0, 4.0).finished())); | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| TEST (Serialization, ConcurrentMap) { | ||||
| 
 | ||||
|   ConcurrentMap<int, std::string> map; | ||||
| 
 | ||||
|   map.insert(make_pair(1, "apple")); | ||||
|   map.insert(make_pair(2, "banana")); | ||||
| 
 | ||||
|   std::string binaryPath = "saved_map.dat"; | ||||
|     try { | ||||
|     std::ofstream outputStream(binaryPath); | ||||
|     boost::archive::binary_oarchive outputArchive(outputStream); | ||||
|     outputArchive << map; | ||||
|   } catch(...) { | ||||
|     EXPECT(false); | ||||
|   } | ||||
| 
 | ||||
|   // Verify that the existing map contents are replaced by the archive data
 | ||||
|   ConcurrentMap<int, std::string> mapFromDisk; | ||||
|   mapFromDisk.insert(make_pair(3, "clam")); | ||||
|   EXPECT(mapFromDisk.exists(3)); | ||||
|   try { | ||||
|     std::ifstream ifs(binaryPath); | ||||
|     boost::archive::binary_iarchive inputArchive(ifs); | ||||
|     inputArchive >> mapFromDisk; | ||||
|   } catch(...) { | ||||
|     EXPECT(false); | ||||
|   } | ||||
|   EXPECT(mapFromDisk.exists(1)); | ||||
|   EXPECT(mapFromDisk.exists(2)); | ||||
|   EXPECT(!mapFromDisk.exists(3)); | ||||
| } | ||||
| 
 | ||||
| /* ************************************************************************* */ | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue