class RefDataSerializer : public gmx::ISerializer
{
- public:
- RefDataSerializer(gmx::test::TestReferenceChecker *parentChecker,
- const char *id)
- : checker_(parentChecker->checkCompound("SerializedData", id))
- {
- }
-
- bool reading() const override { return false; }
-
- void doBool(bool *value) override
- {
- checker_.checkBoolean(*value, nullptr);
- }
- void doUChar(unsigned char *value) override
- {
- checker_.checkUChar(*value, nullptr);
- }
- void doChar(char * /* value */) override
- {
- raiseAssert();
- }
- void doUShort(unsigned short * /* value */) override
- {
- raiseAssert();
- }
- void doInt(int *value) override
- {
- checker_.checkInteger(*value, nullptr);
- }
- void doInt32(int32_t *value) override
- {
- checker_.checkInt32(*value, nullptr);
- }
- void doInt64(int64_t *value) override
- {
- checker_.checkInt64(*value, nullptr);
- }
- void doFloat(float *value) override
- {
- checker_.checkFloat(*value, nullptr);
- }
- void doDouble(double *value) override
- {
- checker_.checkDouble(*value, nullptr);
- }
- void doString(std::string *value) override
- {
- checker_.checkString(*value, nullptr);
- }
- void doReal(real * /* value */ ) override
- {
- raiseAssert();
- }
- void doIvec(ivec * /* value */) override
- {
- raiseAssert();
- }
- void doRvec(rvec * /* value */) override
- {
- raiseAssert();
- }
-
- private:
- gmx::test::TestReferenceChecker checker_;
+public:
+ RefDataSerializer(gmx::test::TestReferenceChecker* parentChecker, const char* id) :
+ checker_(parentChecker->checkCompound("SerializedData", id))
+ {
+ }
+
+ bool reading() const override { return false; }
+
+ void doBool(bool* value) override { checker_.checkBoolean(*value, nullptr); }
+ void doUChar(unsigned char* value) override { checker_.checkUChar(*value, nullptr); }
+ void doChar(char* /* value */) override { raiseAssert(); }
+ void doUShort(unsigned short* /* value */) override { raiseAssert(); }
+ void doInt(int* value) override { checker_.checkInteger(*value, nullptr); }
+ void doInt32(int32_t* value) override { checker_.checkInt32(*value, nullptr); }
+ void doInt64(int64_t* value) override { checker_.checkInt64(*value, nullptr); }
+ void doFloat(float* value) override { checker_.checkFloat(*value, nullptr); }
+ void doDouble(double* value) override { checker_.checkDouble(*value, nullptr); }
+ void doString(std::string* value) override { checker_.checkString(*value, nullptr); }
+ void doReal(real* /* value */) override { raiseAssert(); }
+ void doIvec(ivec* /* value */) override { raiseAssert(); }
+ void doRvec(rvec* /* value */) override { raiseAssert(); }
+
+private:
+ gmx::test::TestReferenceChecker checker_;
};
class KeyValueTreeSerializerTest : public ::testing::Test
{
- public:
- void runTest()
- {
- gmx::KeyValueTreeObject input(builder_.build());
- gmx::test::TestReferenceData data;
- gmx::test::TestReferenceChecker checker(data.rootChecker());
- checker.checkKeyValueTreeObject(input, "Input");
- {
- RefDataSerializer serializer(&checker, "Stream");
- gmx::serializeKeyValueTree(input, &serializer);
- }
- std::vector<char> buffer = serializeTree(input);
- {
- gmx::InMemoryDeserializer deserializer(buffer, false);
- gmx::KeyValueTreeObject output
- = gmx::deserializeKeyValueTree(&deserializer);
- checker.checkKeyValueTreeObject(output, "Input");
- }
- }
-
- gmx::KeyValueTreeBuilder builder_;
-
- private:
- std::vector<char> serializeTree(const gmx::KeyValueTreeObject &tree)
- {
- gmx::InMemorySerializer serializer;
- gmx::serializeKeyValueTree(tree, &serializer);
- return serializer.finishAndGetBuffer();
- }
+public:
+ void runTest()
+ {
+ gmx::KeyValueTreeObject input(builder_.build());
+ gmx::test::TestReferenceData data;
+ gmx::test::TestReferenceChecker checker(data.rootChecker());
+ checker.checkKeyValueTreeObject(input, "Input");
+ {
+ RefDataSerializer serializer(&checker, "Stream");
+ gmx::serializeKeyValueTree(input, &serializer);
+ }
+ std::vector<char> buffer = serializeTree(input);
+ {
+ gmx::InMemoryDeserializer deserializer(buffer, false);
+ gmx::KeyValueTreeObject output = gmx::deserializeKeyValueTree(&deserializer);
+ checker.checkKeyValueTreeObject(output, "Input");
+ }
+ }
+
+ gmx::KeyValueTreeBuilder builder_;
+
+private:
+ std::vector<char> serializeTree(const gmx::KeyValueTreeObject& tree)
+ {
+ gmx::InMemorySerializer serializer;
+ gmx::serializeKeyValueTree(tree, &serializer);
+ return serializer.finishAndGetBuffer();
+ }
};
TEST_F(KeyValueTreeSerializerTest, EmptyTree)