Merge pull request #1248 from ScottMcMichael/fix_vector_values_deserialize
commit
0af17f438f
|
@ -113,6 +113,7 @@ private:
|
||||||
template<class Archive>
|
template<class Archive>
|
||||||
void load(Archive& ar, const unsigned int /*version*/)
|
void load(Archive& ar, const unsigned int /*version*/)
|
||||||
{
|
{
|
||||||
|
this->clear();
|
||||||
// Load into STL container and then fill our map
|
// Load into STL container and then fill our map
|
||||||
FastVector<std::pair<KEY, VALUE> > map;
|
FastVector<std::pair<KEY, VALUE> > map;
|
||||||
ar & BOOST_SERIALIZATION_NVP(map);
|
ar & BOOST_SERIALIZATION_NVP(map);
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <gtsam/inference/Key.h>
|
#include <gtsam/inference/Key.h>
|
||||||
|
|
||||||
|
#include <gtsam/base/ConcurrentMap.h>
|
||||||
#include <gtsam/base/Matrix.h>
|
#include <gtsam/base/Matrix.h>
|
||||||
#include <gtsam/base/MatrixSerialization.h>
|
#include <gtsam/base/MatrixSerialization.h>
|
||||||
#include <gtsam/base/Vector.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()));
|
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