DiscreteKeys serialization
parent
7c84020bbc
commit
bfb865c12e
|
@ -21,6 +21,7 @@
|
|||
#include <gtsam/global_includes.h>
|
||||
#include <gtsam/inference/Key.h>
|
||||
|
||||
#include <boost/serialization/vector.hpp>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
@ -79,8 +80,36 @@ namespace gtsam {
|
|||
}
|
||||
}
|
||||
|
||||
bool equals(const DiscreteKeys& other, double tol = 0) const {
|
||||
if (this->size() != other.size()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < this->size(); i++) {
|
||||
if (this->at(i).first != other.at(i).first ||
|
||||
this->at(i).second != other.at(i).second) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Serialization function */
|
||||
friend class boost::serialization::access;
|
||||
template <class ARCHIVE>
|
||||
void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
|
||||
ar& boost::serialization::make_nvp(
|
||||
"DiscreteKeys",
|
||||
boost::serialization::base_object<std::vector<DiscreteKey>>(*this));
|
||||
}
|
||||
|
||||
}; // DiscreteKeys
|
||||
|
||||
/// Create a list from two keys
|
||||
GTSAM_EXPORT DiscreteKeys operator&(const DiscreteKey& key1, const DiscreteKey& key2);
|
||||
}
|
||||
|
||||
// traits
|
||||
template <>
|
||||
struct traits<DiscreteKeys> : public Testable<DiscreteKeys> {};
|
||||
|
||||
} // namespace gtsam
|
||||
|
|
|
@ -16,14 +16,29 @@
|
|||
* @author Duy-Nguyen Ta
|
||||
*/
|
||||
|
||||
#include <gtsam/base/Testable.h>
|
||||
#include <gtsam/discrete/DiscreteFactor.h>
|
||||
#include <CppUnitLite/TestHarness.h>
|
||||
#include <gtsam/base/Testable.h>
|
||||
#include <gtsam/base/serializationTestHelpers.h>
|
||||
#include <gtsam/discrete/DiscreteFactor.h>
|
||||
|
||||
#include <boost/assign/std/map.hpp>
|
||||
using namespace boost::assign;
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
using namespace gtsam::serializationTestHelpers;
|
||||
|
||||
/* ************************************************************************* */
|
||||
TEST(DisreteKeys, Serialization) {
|
||||
DiscreteKeys keys;
|
||||
keys& DiscreteKey(0, 2);
|
||||
keys& DiscreteKey(1, 3);
|
||||
keys& DiscreteKey(2, 4);
|
||||
|
||||
EXPECT(equalsObj<DiscreteKeys>(keys));
|
||||
EXPECT(equalsXML<DiscreteKeys>(keys));
|
||||
EXPECT(equalsBinary<DiscreteKeys>(keys));
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
int main() {
|
||||
|
@ -31,4 +46,3 @@ int main() {
|
|||
return TestRegistry::runAllTests(tr);
|
||||
}
|
||||
/* ************************************************************************* */
|
||||
|
||||
|
|
Loading…
Reference in New Issue