74 multipleFlags.reset();
78 multipleFlags.reset();
123 std::string flagString = flag1.string();
129 std::string binaryStr =
"101";
130 flags.set(binaryStr, 2);
137 BOOST_CHECK_THROW(
flags.set(std::string(
"invalid"), 2), std::invalid_argument);
140 BOOST_CHECK_THROW(
flags.set(std::string(
"100000000"), 2), std::out_of_range);
143 const auto n =
flags.getNames();
144 const auto v =
flags.getValues();
155 std::string
str =
"TestEnum::Bit2";
162 std::string
str =
"Bit4|TestEnum::Bit2 | Bit1 ";
171 std::string
str =
"Bit4,TestEnum::Bit2 , Bit1 ";
180 std::string
str =
"Bit4;TestEnum::Bit2 ; Bit1 ";
189 std::string
str =
"Bit4|TestEnum::Bit2 , Bit1 ";
190 BOOST_CHECK_THROW(
flags.set(
str), std::invalid_argument);
194 std::string
str =
"Invalid";
195 BOOST_CHECK_THROW(
flags.set(
str), std::invalid_argument);
219 std::string serialized = serializedFlags.serialize();
223 EFlags deserializedFlags;
224 deserializedFlags.deserialize(serialized);
231 std::string serialized = emptyFlags.serialize();
235 deserialized.deserialize(serialized);
239 EFlags allFlags(EFlags::All);
240 serialized = allFlags.serialize();
243 deserialized.deserialize(serialized);
250 std::string
str =
"999999";
251 BOOST_CHECK_THROW(flag.deserialize(
str), std::out_of_range);
260 EFlags unionFlags = flags1.union_with(flags2);
274 auto flagsXOR = flags3 ^ flags4;
278 auto flagsAND = flags3 & flags4;
282 EFlags intersectionFlags = flags3.intersection_with(flags4);
372 BOOST_CHECK_THROW(
flags.set(
"InvalidFlag"), std::invalid_argument);
382 auto previousValue =
flags.value();
385 BOOST_CHECK_THROW(
flags.set(
"999999", 10), std::out_of_range);
395 auto previousValue =
flags.value();
398 BOOST_CHECK_THROW(
flags.set(
"10102", 2), std::invalid_argument);
491 BOOST_CHECK_THROW(EFlags(
"Bit1|Bit2,Bit3"), std::invalid_argument);
495 BOOST_CHECK_THROW(EFlags(
"Bit1;Bit2|Bit3"), std::invalid_argument);
499 BOOST_CHECK_THROW(EFlags(
"Bit1,Bit2;Bit3"), std::invalid_argument);
503 BOOST_CHECK_THROW(EFlags(
"Bit1|Bit2,Bit3;Bit4"), std::invalid_argument);
508 EFlags flags1(
"Bit1|Bit2|Bit3");
513 EFlags flags2(
"Bit1,Bit2,Bit3");
518 EFlags flags3(
"Bit1;Bit2;Bit3");