+
+BOOST_AUTO_TEST_CASE( serialize_color )
+{
+ const Color color1(1.0, 1.0, 1.0, 1.0);
+
+ std::ostringstream oss;
+ // allocate/deallocate serialization components
+ {
+ boost::archive::text_oarchive oarchive(oss);
+ oarchive << color1;
+ }
+ Color color2;
+ {
+ std::istringstream iss(oss.str());
+ boost::archive::text_iarchive iarchive(iss);
+ iarchive >> color2;
+ }
+ BOOST_CHECK_EQUAL(color1, color2);
+}
+
+BOOST_AUTO_TEST_CASE( serialize_xml_color )
+{
+ const Color color1(0.0, 0.5, 0.0, 0.0);
+
+ std::ostringstream oss;
+ // allocate/deallocate serialization components
+ {
+ boost::archive::xml_oarchive oarchive(oss);
+ oarchive << boost::serialization::make_nvp("color", color1);
+ }
+ //std::cout << "XML Color: " << oss.str() << std::endl;
+ Color color2;
+ {
+ std::istringstream iss(oss.str());
+ boost::archive::xml_iarchive iarchive(iss);
+ iarchive >> boost::serialization::make_nvp("color", color2);
+ }
+ BOOST_CHECK_EQUAL(color1, color2);
+}