31 const char SERIALIZE_TYPE_MARK[] =
"ot2:map";
42 const std::string& prefix_) :
49 const CtorMark* ctor_mark_) :
60 return SERIALIZE_TYPE_MARK;
63 bool TestMarkMap::doIsEqualPrefixed(
65 long double precision_)
const {
68 if(map.size() != o_->map.size())
71 auto liter_(map.begin());
72 auto riter_(o_->map.begin());
73 for(; liter_ != map.end(); ++liter_, ++riter_) {
74 if((*liter_).first != (*riter_).first)
76 if(!(*liter_).second->isEqual(*(*riter_).second, precision_))
83 void TestMarkMap::doDiffArray(
85 std::vector<LinearizedRecord>& array_)
const
87 for(
const auto& item_ : map) {
88 array_.push_back({level_, item_.second.get(), item_.first});
92 void TestMarkMap::doLinearizedMark(
94 const std::string& label_,
95 std::vector<LinearizedRecord>& array_)
const {
96 array_.push_back({level_,
this, label_});
97 for(
const auto& item_ : map) {
98 item_.second->doLinearizedMark(level_ + 1, item_.first, array_);
102 const char* TestMarkMap::getParenthesis()
const {
106 void TestMarkMap::serializeItems(
107 TestMarkOut& serializer_)
const {
108 serializer_.writeInt(map.size());
109 for(
const auto& item_ : map) {
110 serializer_.writeString(item_.first);
111 item_.second->serializeMark(serializer_);
115 void TestMarkMap::deserializeItems(
116 TestMarkFactory& factory_,
117 TestMarkIn& deserializer_) {
118 const std::int64_t size_(deserializer_.readInt());
119 for(std::int64_t i_(0); i_ < size_; ++i_) {
120 std::string key_(deserializer_.readString());
127 const std::string& key_,
129 assert(!key_.empty() && mark_ !=
nullptr);
131 map.insert(Map::value_type(key_, mark_));