text: 
  // Warning! This file is autogenerated.
  #include <boost/text/collation_table.hpp>
  #include <boost/text/collate.hpp>
  #include <boost/text/data/all.hpp>
  
  #ifndef LIMIT_TESTING_FOR_CI
  #include <boost/text/save_load_table.hpp>
  
  #include <boost/filesystem.hpp>
  #endif
  
  #include <gtest/gtest.h>
  
  using namespace boost::text;
  
  auto const error = [](string const & s) { std::cout << s; };
  auto const warning = [](string const & s) {};
  
  collation_table make_save_load_table()
  {
  #ifdef LIMIT_TESTING_FOR_CI
      string const table_str(data::th::standard_collation_tailoring());
      return tailored_collation_table(
          table_str,
          "th::standard_collation_tailoring()", error, warning);
  #else
      if (!exists(boost::filesystem::path("th_standard.table"))) {
          string const table_str(data::th::standard_collation_tailoring());
          collation_table table = tailored_collation_table(
              table_str,
              "th::standard_collation_tailoring()", error, warning);
          save_table(table, "th_standard.table.0");
          boost::filesystem::rename("th_standard.table.0", "th_standard.table");
      }
      return load_table("th_standard.table");
  #endif
  }
  collation_table const & table()
  {
      static collation_table retval = make_save_load_table();
      return retval;
  }
  TEST(tailoring, th_standard_000_001)
  {
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>(1, 0x0e5b);
      auto const rel = std::vector<uint32_t>(1, 0x0e46);
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>(1, 0x0e4e);
      auto const rel = std::vector<uint32_t>(1, 0x0e4c);
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>(1, 0x0e32);
      auto const rel = std::vector<uint32_t>(1, 0x0e45);
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>{0x0e32, 0x0e4d};
      auto const rel = std::vector<uint32_t>{0x0e4d, 0x0e32};
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>{0x0e4d, 0x0e32};
      auto const rel = std::vector<uint32_t>(1, 0x0e33);
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>{0x0e45, 0x0e4d};
      auto const rel = std::vector<uint32_t>{0x0e4d, 0x0e45};
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
      {
      // greater than (or equal to, for =) preceeding cps
      auto const res = std::vector<uint32_t>(1, 0x0e44);
      auto const rel = std::vector<uint32_t>(1, 0x0e3a);
      string const res_str = to_string(res);
      string const rel_str = to_string(rel);
      auto const res_view = as_utf32(res);
      auto const rel_view = as_utf32(rel);
      EXPECT_EQ(collate(
          res.begin(), res.end(),
          rel.begin(), rel.end(),
          table(), collation_strength::quaternary),
          -1);
      EXPECT_EQ(collate(
          res_view.begin(), res_view.end(),
          rel_view.begin(), rel_view.end(),
          table(), collation_strength::quaternary),
          -1);
      }
  }
  