Move all pretty printers to pretty_printers.hpp

Next step is to get rid of std extensions.

Change-Id: Ib24c66521e6e7899cf2dae159d01e11f13622631
diff --git a/tests/pretty_printers.hpp b/tests/pretty_printers.hpp
index 69c06f5..5b747a1 100644
--- a/tests/pretty_printers.hpp
+++ b/tests/pretty_printers.hpp
@@ -6,6 +6,7 @@
 */
 
 #include <experimental/iterator>
+#include <sstream>
 #include "parser.hpp"
 #include "utils.hpp"
 namespace std {
@@ -107,6 +108,29 @@
     return s;
 }
 
+std::ostream& operator<<(std::ostream& s, const std::set<std::string> set)
+{
+    s << std::endl << "{";
+    std::copy(set.begin(), set.end(), std::experimental::make_ostream_joiner(s, ", "));
+    s << "}" << std::endl;
+    return s;
+}
+
+std::ostream& operator<<(std::ostream& s, const std::vector<ListInstance> set)
+{
+    s << std::endl << "{" << std::endl;
+    std::transform(set.begin(), set.end(), std::experimental::make_ostream_joiner(s, ", \n"), [](const auto& map) {
+        std::ostringstream ss;
+        ss << "    {" << std::endl << "        ";
+        std::transform(map.begin(), map.end(), std::experimental::make_ostream_joiner(ss, ", \n        "), [](const auto& keyValue){
+            return "{" + keyValue.first + "{" + boost::core::demangle(keyValue.second.type().name()) + "}" + ", " + leafDataToString(keyValue.second) + "}";
+        });
+        ss << std::endl << "    }";
+        return ss.str();
+    });
+    s << std::endl << "}" << std::endl;
+    return s;
+}
 }
 
 std::ostream& operator<<(std::ostream& s, const boost::variant<dataPath_, schemaPath_, module_>& path)
@@ -170,3 +194,8 @@
     s << "\n}\n";
     return s;
 }
+
+std::ostream& operator<<(std::ostream& s, const set_ cmd)
+{
+    return s << "Command SET {path: " << pathToSchemaString(cmd.m_path, Prefixes::Always) << ", type " << boost::core::demangle(cmd.m_data.type().name()) << ", data: " << leafDataToString(cmd.m_data) << "}";
+}