Adding autogenerated tests to the repo.



git-svn-id: http://sfntly.googlecode.com/svn/trunk/cpp/src@75 672e30a5-4c29-85ac-ac6d-611c735e0a51
diff --git a/test/autogenerated/cmap_basic_test.cc b/test/autogenerated/cmap_basic_test.cc
new file mode 100644
index 0000000..e12aedd
--- /dev/null
+++ b/test/autogenerated/cmap_basic_test.cc
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2011 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <unicode/ucnv.h>
+
+#include <iostream>
+#include <string>
+
+#include "gtest/gtest.h"
+#include "sfntly/data/memory_byte_array.h"
+#include "sfntly/font.h"
+#include "sfntly/font_factory.h"
+#include "sfntly/table/core/cmap_table.h"
+#include "sfntly/table/core/font_header_table.h"
+#include "sfntly/tag.h"
+#include "test/autogenerated/cmap_test_data.h"
+#include "test/test_font_utils.h"
+#include "test/test_utils.h"
+
+namespace sfntly {
+
+#if GTEST_HAS_PARAM_TEST
+
+using ::testing::TestWithParam;
+using ::testing::Values;
+
+class CMapBasicTests : public :: testing::TestWithParam<TestCMap> {
+ public:
+  CMapBasicTests() {}
+  virtual void SetUp();
+  virtual void TearDown() {}
+
+  void BasicTest(int32_t index);
+
+  Ptr<CMapTable> cmap_table_;
+};
+
+void CMapBasicTests::SetUp() {
+  Ptr<FontFactory> font_factory;
+  font_factory.Attach(FontFactory::GetInstance());
+  FontArray font_array;
+  std::string font_name("../../");
+#if defined (WIN32)
+  font_name += "../";
+#endif
+  font_name += std::string(GetParam().name);
+  LoadFont(font_name.c_str(), font_factory, &font_array);
+  ASSERT_FALSE(font_array.empty());
+  Ptr<Font> font = font_array.at(0);
+  ASSERT_NE(font, reinterpret_cast<Font*>(NULL));
+  cmap_table_ = down_cast<CMapTable*>(font->GetTable(Tag::cmap));
+  if (!cmap_table_)
+    fprintf(stderr, "No CMap: %s\n", font_name.c_str());
+  ASSERT_NE(cmap_table_, reinterpret_cast<CMapTable*>(NULL));
+}
+
+void CMapBasicTests::BasicTest(int32_t index) {
+  const ProtoCMap* test = &GetParam().cmaps[index];
+  Ptr<CMapTable::CMap> cmap;
+  cmap.Attach(cmap_table_->GetCMap(test->platform_id, test->encoding_id));
+  if (!cmap) {
+    fprintf(stderr, "Cannot test unsupported CMapFormat%d\n", test->format);
+    return;
+  }
+  ASSERT_EQ(cmap->platform_id(), test->platform_id);
+  ASSERT_EQ(cmap->encoding_id(), test->encoding_id);
+  ASSERT_EQ(cmap->format(), test->format);
+  // There is no length() method for a CMap!
+  // ASSERT_EQ(cmap->length(), test->length);
+  for (int32_t i = 0; i < test->num_mappings; ++i)
+    ASSERT_EQ(cmap->GlyphId(test->chars[i]), test->glyph_ids[i]);
+}
+
+TEST_P(CMapBasicTests, BasicTest) {
+  for (int32_t i = 0; i < GetParam().num_cmaps; ++i)
+    BasicTest(i);
+}
+
+
+INSTANTIATE_TEST_CASE_P(CMapBasicTests,
+                        CMapBasicTests,
+                        ::testing::ValuesIn(kAllTestCMaps));
+
+#else
+
+TEST(DummyTest, ValueParameterizedTestsAreNotSupportedOnThisPlatform) {}
+
+#endif  // GTEST_HAS_PARAM
+}
diff --git a/test/autogenerated/cmap_test_data.cc b/test/autogenerated/cmap_test_data.cc
new file mode 100644
index 0000000..95ee15c
--- /dev/null
+++ b/test/autogenerated/cmap_test_data.cc
@@ -0,0 +1,3435 @@
+/*
+ * !!! DO NOT EDIT !!!
+ * THIS FILE IS GENERATED BY A SCRIPT.
+ * FOR MORE DETAILS SEE 'README-test_data.txt'.
+ */
+
+/*
+ * Copyright 2011 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "test/autogenerated/cmap_test_data.h"
+
+namespace sfntly
+{
+  TestCMap kTestCousine_BoldItalic_ttf_xml = {
+    "data/fonts/cousine/Cousine-BoldItalic.ttf",
+    2,
+    {
+     {
+      344,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCousine_Bold_ttf_xml = {
+    "data/fonts/cousine/Cousine-Bold.ttf",
+    2,
+    {
+     {
+      344,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCousine_Regular_ttf_xml = {
+    "data/fonts/cousine/Cousine-Regular.ttf",
+    2,
+    {
+     {
+      344,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCousine_Italic_ttf_xml = {
+    "data/fonts/cousine/Cousine-Italic.ttf",
+    2,
+    {
+     {
+      344,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCedarville_Cursive_ttf_xml = {
+    "data/fonts/cedarvillecursive/Cedarville-Cursive.ttf",
+    1,
+    {
+     {
+      240,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 278, 317, 355, 710}
+      ,				// chars
+      {3, 38, 73, 108, 143, 178, 213, 248, 283, 318}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDancingScript_Bold_ttf_xml = {
+    "data/fonts/dancingscript/DancingScript-Bold.ttf",
+    1,
+    {
+     {
+      216,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 177, 199, 221, 243, 710}
+      ,				// chars
+      {3, 25, 47, 69, 91, 113, 135, 157, 179, 201}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDancingScript_Regular_ttf_xml = {
+    "data/fonts/dancingscript/DancingScript-Regular.ttf",
+    1,
+    {
+     {
+      216,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 177, 199, 221, 243, 710}
+      ,				// chars
+      {3, 25, 47, 69, 91, 113, 135, 157, 179, 201}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDamion_Regular_ttf_xml = {
+    "data/fonts/damion/Damion-Regular.ttf",
+    1,
+    {
+     {
+      314,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 58, 84, 110, 169, 197, 223, 249, 520, 733}
+      ,				// chars
+      {3, 29, 55, 81, 106, 132, 158, 184, 210, 236}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAnnieUseYourTelescope_ttf_xml = {
+    "data/fonts/annieuseyourtelescope/AnnieUseYourTelescope.ttf",
+    1,
+    {
+     {
+      248,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 275, 317, 353, 710}
+      ,				// chars
+      {3, 38, 73, 108, 143, 178, 213, 248, 283, 318}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDeliusSwashCaps_Regular_ttf_xml = {
+    "data/fonts/deliusswashcaps/DeliusSwashCaps-Regular.ttf",
+    1,
+    {
+     {
+      288,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 58, 84, 110, 169, 195, 221, 247, 323, 8224}
+      ,				// chars
+      {3, 29, 55, 81, 107, 133, 159, 185, 211, 237}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDelius_Regular_ttf_xml = {
+    "data/fonts/delius/Delius-Regular.ttf",
+    1,
+    {
+     {
+      288,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 58, 84, 110, 169, 195, 221, 247, 323, 8224}
+      ,				// chars
+      {3, 29, 55, 81, 107, 133, 159, 185, 211, 237}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCoveredByYourGrace_ttf_xml = {
+    "data/fonts/coveredbyyourgrace/CoveredByYourGrace.ttf",
+    1,
+    {
+     {
+      478,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 201, 235, 269, 311, 350, 509}
+      ,				// chars
+      {3, 37, 71, 104, 138, 172, 206, 240, 274, 308}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestEBGaramond_Regular_ttf_xml = {
+    "data/fonts/ebgaramond/EBGaramond-Regular.ttf",
+    1,
+    {
+     {
+      1048,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 217, 369, 523, 678, 1032, 7470, 7794, 8137, 8566}
+      ,				// chars
+      {3, 155, 307, 459, 611, 763, 915, 1067, 1219, 1371}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabinSketch_Bold_ttf_xml = {
+    "data/fonts/cabinsketch/CabinSketch-Bold.ttf",
+    2,
+    {
+     {
+      230,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 176, 198, 220, 242, 402}
+      ,				// chars
+      {3, 25, 47, 69, 91, 112, 134, 156, 178, 200}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 177, 152, 123, 119}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAllan_Bold_ttf_xml = {
+    "data/fonts/allan/Allan-Bold.ttf",
+    2,
+    {
+     {
+      232,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 176, 198, 220, 242, 382}
+      ,				// chars
+      {3, 25, 47, 69, 91, 113, 135, 157, 179, 201}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 178, 153, 124, 120}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCoda_Caption_Heavy_ttf_xml = {
+    "data/fonts/coda/Coda-Caption-Heavy.ttf",
+    1,
+    {
+     {
+      256,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 72, 112, 185, 225, 265, 305, 345, 452, 526}
+      ,				// chars
+      {3, 43, 83, 123, 163, 203, 243, 283, 323, 363}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCoda_Heavy_ttf_xml = {
+    "data/fonts/coda/Coda-Heavy.ttf",
+    1,
+    {
+     {
+      240,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 64, 96, 162, 195, 227, 259, 301, 336, 378}
+      ,				// chars
+      {3, 35, 67, 99, 131, 163, 195, 227, 259, 291}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestForum_Regular_ttf_xml = {
+    "data/fonts/forum/Forum-Regular.ttf",
+    2,
+    {
+     {
+      1262,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 89, 183, 245, 302, 361, 1029, 1086, 1187, 1265}
+      ,				// chars
+      {3, 60, 163, 156, 235, 565, 365, 426, 479, 531}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 193, 31, 97, 83, 112, 142, 19, 66}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAlike_Regular_ttf_xml = {
+    "data/fonts/alike/Alike-Regular.ttf",
+    2,
+    {
+     {
+      152,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCorben_Bold_ttf_xml = {
+    "data/fonts/corben/Corben-Bold.ttf",
+    1,
+    {
+     {
+      344,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 179, 217, 255, 294, 339, 377, 7779}
+      ,				// chars
+      {3, 41, 79, 117, 155, 193, 231, 269, 307, 344}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCaudex_Regular_ttf_xml = {
+    "data/fonts/caudex/Caudex-Regular.ttf",
+    1,
+    {
+     {
+      3272,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 266, 537, 928, 7684, 8052, 8595, 57446, 59571, 61226}
+      ,				// chars
+      {3, 204, 405, 606, 807, 1008, 1209, 1410, 1611, 1812}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCaudex_BoldItalic_ttf_xml = {
+    "data/fonts/caudex/Caudex-BoldItalic.ttf",
+    1,
+    {
+     {
+      3272,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 266, 537, 928, 7684, 8052, 8595, 57446, 59571, 61226}
+      ,				// chars
+      {3, 204, 405, 606, 807, 1008, 1209, 1410, 1611, 1812}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCaudex_Italic_ttf_xml = {
+    "data/fonts/caudex/Caudex-Italic.ttf",
+    1,
+    {
+     {
+      3272,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 266, 537, 928, 7684, 8052, 8595, 57446, 59571, 61226}
+      ,				// chars
+      {3, 204, 405, 606, 807, 1008, 1209, 1410, 1611, 1812}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCaudex_Bold_ttf_xml = {
+    "data/fonts/caudex/Caudex-Bold.ttf",
+    1,
+    {
+     {
+      3272,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 266, 537, 928, 7684, 8052, 8595, 57446, 59571, 61226}
+      ,				// chars
+      {3, 204, 405, 606, 807, 1008, 1209, 1410, 1611, 1812}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_MediumItalic_ttf_xml = {
+    "data/fonts/cabin/Cabin-MediumItalic.ttf",
+    1,
+    {
+     {
+      232,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_SemiBold_ttf_xml = {
+    "data/fonts/cabin/Cabin-SemiBold.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_SemiBoldItalic_ttf_xml = {
+    "data/fonts/cabin/Cabin-SemiBoldItalic.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_BoldItalic_ttf_xml = {
+    "data/fonts/cabin/Cabin-BoldItalic.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_Medium_ttf_xml = {
+    "data/fonts/cabin/Cabin-Medium.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_Italic_ttf_xml = {
+    "data/fonts/cabin/Cabin-Italic.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_Bold_ttf_xml = {
+    "data/fonts/cabin/Cabin-Bold.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCabin_Regular_ttf_xml = {
+    "data/fonts/cabin/Cabin-Regular.ttf",
+    1,
+    {
+     {
+      224,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 181, 204, 227, 250, 8217}
+      ,				// chars
+      {1, 24, 47, 70, 93, 116, 139, 162, 185, 208}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDawningofaNewDay_ttf_xml = {
+    "data/fonts/dawningofanewday/DawningofaNewDay.ttf",
+    1,
+    {
+     {
+      280,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 58, 84, 110, 169, 196, 222, 248, 336, 711}
+      ,				// chars
+      {3, 29, 55, 81, 107, 133, 159, 185, 211, 237}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDangrek_ttf_xml = {
+    "data/fonts/dangrek/Dangrek.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBlackOpsOne_ttf_xml = {
+    "data/fonts/blackopsone/BlackOpsOne.ttf",
+    1,
+    {
+     {
+      256,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {1, 39, 65, 91, 117, 176, 202, 228, 254, 567}
+      ,				// chars
+      {3, 29, 55, 81, 107, 133, 159, 185, 211, 237}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestFrancoisOne_ttf_xml = {
+    "data/fonts/francoisone/FrancoisOne.ttf",
+    1,
+    {
+     {
+      456,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {2, 72, 115, 192, 235, 278, 322, 365, 515, 7779}
+      ,				// chars
+      {3, 46, 89, 132, 175, 218, 261, 304, 347, 390}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBowlbyOne_ttf_xml = {
+    "data/fonts/bowlbyone/BowlbyOne.ttf",
+    1,
+    {
+     {
+      368,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 60, 88, 116, 178, 206, 234, 353, 535, 8226}
+      ,				// chars
+      {3, 31, 59, 87, 115, 143, 171, 199, 227, 255}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBowlbyOneSC_ttf_xml = {
+    "data/fonts/bowlbyone/BowlbyOneSC.ttf",
+    1,
+    {
+     {
+      384,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 62, 92, 122, 185, 215, 245, 520, 806, 8240}
+      ,				// chars
+      {3, 33, 63, 93, 123, 153, 183, 213, 243, 273}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCalligraffiti_ttf_xml = {
+    "data/fonts/calligraffiti/Calligraffiti.ttf",
+    2,
+    {
+     {
+      412,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 175, 197, 219, 241, 376}
+      ,				// chars
+      {21, 43, 65, 87, 109, 217, 117, 212, 138, 188}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 39, 64, 89, 114, 138, 160, 172, 195}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBangers_ttf_xml = {
+    "data/fonts/bangers/Bangers.ttf",
+    2,
+    {
+     {
+      296,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {9, 46, 70, 94, 118, 174, 200, 224, 248, 8212}
+      ,				// chars
+      {3, 27, 51, 75, 99, 123, 147, 171, 195, 219}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 31, 56, 81, 106, 188, 163, 134, 130}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAstloch_Regular_ttf_xml = {
+    "data/fonts/astloch/Astloch-Regular.ttf",
+    2,
+    {
+     {
+      128,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 52, 72, 92, 112, 165, 185, 205, 225, 245}
+      ,				// chars
+      {3, 23, 43, 63, 83, 103, 123, 143, 163, 183}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAstloch_Bold_ttf_xml = {
+    "data/fonts/astloch/Astloch-Bold.ttf",
+    2,
+    {
+     {
+      128,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 52, 72, 92, 112, 165, 185, 205, 225, 245}
+      ,				// chars
+      {3, 23, 43, 63, 83, 103, 123, 143, 163, 183}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAngkor_ttf_xml = {
+    "data/fonts/angkor/Angkor.ttf",
+    2,
+    {
+     {
+      88,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAbrilFatface_Regular_ttf_xml = {
+    "data/fonts/abrilfatface/AbrilFatface-Regular.ttf",
+    1,
+    {
+     {
+      360,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 71, 110, 182, 221, 260, 299, 338, 377, 7922}
+      ,				// chars
+      {3, 42, 81, 120, 159, 198, 237, 276, 315, 354}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCantarell_BoldOblique_ttf_xml = {
+    "data/fonts/cantarell/Cantarell-BoldOblique.ttf",
+    1,
+    {
+     {
+      264,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 179, 217, 255, 293, 331, 369, 7767}
+      ,				// chars
+      {3, 41, 79, 117, 155, 193, 231, 269, 307, 345}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCantarell_Oblique_ttf_xml = {
+    "data/fonts/cantarell/Cantarell-Oblique.ttf",
+    1,
+    {
+     {
+      264,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 179, 217, 255, 293, 331, 369, 7767}
+      ,				// chars
+      {3, 41, 79, 117, 155, 193, 231, 269, 307, 345}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCantarell_Bold_ttf_xml = {
+    "data/fonts/cantarell/Cantarell-Bold.ttf",
+    1,
+    {
+     {
+      264,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 179, 217, 255, 293, 331, 369, 7767}
+      ,				// chars
+      {3, 41, 79, 117, 155, 193, 231, 269, 307, 345}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCantarell_Regular_ttf_xml = {
+    "data/fonts/cantarell/Cantarell-Regular.ttf",
+    1,
+    {
+     {
+      264,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 179, 217, 255, 293, 331, 369, 7767}
+      ,				// chars
+      {3, 41, 79, 117, 155, 193, 231, 269, 307, 345}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArvo_Bold_ttf_xml = {
+    "data/fonts/arvo/Arvo-Bold.ttf",
+    1,
+    {
+     {
+      504,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 177, 199, 221, 243, 711}
+      ,				// chars
+      {28, 65, 13, 31, 53, 99, 166, 181, 200, 123}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArvo_Italic_ttf_xml = {
+    "data/fonts/arvo/Arvo-Italic.ttf",
+    1,
+    {
+     {
+      522,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 176, 198, 220, 242, 729}
+      ,				// chars
+      {28, 65, 13, 31, 53, 124, 131, 180, 199, 129}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArvo_BoldItalic_ttf_xml = {
+    "data/fonts/arvo/Arvo-BoldItalic.ttf",
+    1,
+    {
+     {
+      522,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 176, 198, 220, 242, 710}
+      ,				// chars
+      {28, 65, 13, 31, 53, 124, 131, 180, 199, 116}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArvo_Regular_ttf_xml = {
+    "data/fonts/arvo/Arvo-Regular.ttf",
+    1,
+    {
+     {
+      542,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 176, 198, 220, 242, 710}
+      ,				// chars
+      {28, 65, 13, 31, 53, 124, 131, 167, 206, 116}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestChewy_ttf_xml = {
+    "data/fonts/chewy/Chewy.ttf",
+    2,
+    {
+     {
+      420,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 175, 197, 219, 241, 376}
+      ,				// chars
+      {21, 43, 65, 87, 109, 217, 117, 212, 138, 188}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 39, 64, 89, 114, 138, 161, 172, 195}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBigshotOne_ttf_xml = {
+    "data/fonts/bigshotone/BigshotOne.ttf",
+    2,
+    {
+     {
+      176,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestChenla_ttf_xml = {
+    "data/fonts/chenla/Chenla.ttf",
+    2,
+    {
+     {
+      88,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBayon_ttf_xml = {
+    "data/fonts/bayon/Bayon.ttf",
+    2,
+    {
+     {
+      88,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCoustard_Black_ttf_xml = {
+    "data/fonts/coustard/Coustard-Black.ttf",
+    1,
+    {
+     {
+      272,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 64, 96, 161, 193, 225, 257, 299, 336, 381}
+      ,				// chars
+      {3, 35, 67, 99, 131, 163, 195, 227, 259, 291}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCoustard_Regular_ttf_xml = {
+    "data/fonts/coustard/Coustard-Regular.ttf",
+    1,
+    {
+     {
+      884,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 64, 96, 161, 193, 225, 257, 299, 336, 381}
+      ,				// chars
+      {3, 35, 120, 98, 166, 195, 242, 246, 285, 194}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAmaticSC_Bold_ttf_xml = {
+    "data/fonts/amaticsc/AmaticSC-Bold.ttf",
+    1,
+    {
+     {
+      248,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 182, 221, 259, 297, 336, 376, 531}
+      ,				// chars
+      {3, 41, 79, 117, 155, 193, 231, 269, 307, 345}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAmaticSC_Regular_ttf_xml = {
+    "data/fonts/amaticsc/AmaticSC-Regular.ttf",
+    1,
+    {
+     {
+      240,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 69, 106, 178, 216, 253, 290, 327, 365, 498}
+      ,				// chars
+      {3, 40, 77, 114, 151, 188, 225, 262, 299, 336}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestComfortaa_Light_ttf_xml = {
+    "data/fonts/comfortaa/Comfortaa-Light.ttf",
+    1,
+    {
+     {
+      620,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 92, 185, 245, 305, 365, 925, 1036, 1097, 8217}
+      ,				// chars
+      {3, 63, 121, 181, 192, 345, 394, 482, 542, 206}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestComfortaa_Bold_ttf_xml = {
+    "data/fonts/comfortaa/Comfortaa-Bold.ttf",
+    1,
+    {
+     {
+      620,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 92, 185, 245, 305, 365, 925, 1036, 1097, 8217}
+      ,				// chars
+      {3, 63, 121, 181, 192, 345, 394, 482, 542, 206}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestComfortaa_Regular_ttf_xml = {
+    "data/fonts/comfortaa/Comfortaa-Regular.ttf",
+    1,
+    {
+     {
+      620,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 92, 185, 245, 305, 365, 925, 1036, 1097, 8217}
+      ,				// chars
+      {3, 63, 121, 181, 192, 345, 394, 482, 542, 206}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_Bold_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-Bold.ttf",
+    2,
+    {
+     {
+      366,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {9, 60, 33, 86, 11, 127, 148, 169, 190, 211}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 57, 34, 3, 90, 197, 172, 143, 139}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_MediumItalic_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-MediumItalic.ttf",
+    2,
+    {
+     {
+      578,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {7, 140, 41, 29, 66, 182, 110, 112, 87, 166}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 137, 42, 62, 58, 93, 164, 181, 157}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_Medium_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-Medium.ttf",
+    2,
+    {
+     {
+      578,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {7, 146, 41, 29, 66, 188, 116, 118, 93, 172}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 143, 42, 62, 58, 99, 170, 187, 163}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_SemiBold_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-SemiBold.ttf",
+    2,
+    {
+     {
+      578,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {7, 146, 41, 29, 66, 188, 116, 118, 93, 172}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 143, 42, 62, 58, 99, 170, 187, 163}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_Regular_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-Regular.ttf",
+    2,
+    {
+     {
+      570,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {7, 146, 41, 29, 66, 188, 116, 118, 93, 172}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 143, 42, 62, 58, 99, 170, 187, 163}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_Italic_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-Italic.ttf",
+    2,
+    {
+     {
+      570,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {7, 140, 41, 29, 66, 182, 110, 112, 87, 166}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 137, 42, 62, 58, 93, 164, 181, 157}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_SemiBoldItalic_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-SemiBoldItalic.ttf",
+    2,
+    {
+     {
+      578,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {7, 139, 41, 29, 65, 181, 109, 111, 86, 165}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 136, 42, 62, 58, 92, 163, 180, 156}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestExpletusSans_BoldItalic_ttf_xml = {
+    "data/fonts/expletussans/ExpletusSans-BoldItalic.ttf",
+    2,
+    {
+     {
+      382,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 192, 213, 234, 255}
+      ,				// chars
+      {9, 60, 33, 86, 11, 127, 148, 169, 190, 211}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 57, 34, 3, 90, 197, 172, 143, 139}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAubrey_Regular_ttf_xml = {
+    "data/fonts/aubrey/Aubrey-Regular.ttf",
+    1,
+    {
+     {
+      168,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAntic_Regular_ttf_xml = {
+    "data/fonts/antic/Antic-Regular.ttf",
+    2,
+    {
+     {
+      194,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 171, 193, 214, 235, 305}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 128, 149, 170, 191}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCopse_Regular_ttf_xml = {
+    "data/fonts/copse/Copse-Regular.ttf",
+    2,
+    {
+     {
+      152,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {0, 51, 72, 93, 114, 168, 189, 210, 231, 252}
+      ,				// chars
+      {1, 22, 43, 64, 85, 106, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDaysOne_Regular_ttf_xml = {
+    "data/fonts/daysone/DaysOne-Regular.ttf",
+    1,
+    {
+     {
+      320,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 206, 241, 321, 1033, 1069, 1105}
+      ,				// chars
+      {3, 38, 73, 108, 143, 178, 213, 248, 283, 318}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestActor_Regular_ttf_xml = {
+    "data/fonts/actor/Actor-Regular.ttf",
+    2,
+    {
+     {
+      702,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 180, 203, 226, 249, 731}
+      ,				// chars
+      {3, 195, 33, 105, 79, 65, 16, 64, 209, 234}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 204, 29, 96, 81, 154, 41, 129, 173}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBentham_Regular_ttf_xml = {
+    "data/fonts/bentham/Bentham-Regular.ttf",
+    1,
+    {
+     {
+      248,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {19, 62, 93, 124, 208, 242, 275, 306, 339, 370}
+      ,				// chars
+      {3, 34, 65, 96, 127, 158, 189, 220, 251, 282}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestFedero_Regular_ttf_xml = {
+    "data/fonts/federo/Federo-Regular.ttf",
+    1,
+    {
+     {
+      160,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArimo_Italic_ttf_xml = {
+    "data/fonts/arimo/Arimo-Italic.ttf",
+    2,
+    {
+     {
+      352,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArimo_BoldItalic_ttf_xml = {
+    "data/fonts/arimo/Arimo-BoldItalic.ttf",
+    2,
+    {
+     {
+      352,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArimo_Bold_ttf_xml = {
+    "data/fonts/arimo/Arimo-Bold.ttf",
+    2,
+    {
+     {
+      352,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArimo_Regular_ttf_xml = {
+    "data/fonts/arimo/Arimo-Regular.ttf",
+    2,
+    {
+     {
+      352,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 75, 96, 117, 171, 192, 213, 234, 255}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 127, 148, 169, 190}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 45, 70, 95, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeDPsc28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeDPsc28P.ttf",
+    1,
+    {
+     {
+      428,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 201, 235, 273, 328, 375, 8216}
+      ,				// chars
+      {3, 37, 71, 104, 137, 171, 205, 239, 273, 303}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeGPrm28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeGPrm28P.ttf",
+    1,
+    {
+     {
+      452,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 281, 340, 383, 8225}
+      ,				// chars
+      {3, 38, 73, 107, 141, 176, 211, 246, 281, 311}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeENsc28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeENsc28P.ttf",
+    1,
+    {
+     {
+      428,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 201, 235, 273, 328, 375, 8216}
+      ,				// chars
+      {3, 37, 71, 104, 137, 171, 205, 239, 273, 303}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFePIit28P_ttf_xml = {
+    "data/fonts/felltypes/IMFePIit28P.ttf",
+    1,
+    {
+     {
+      492,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 68, 104, 173, 209, 245, 291, 346, 711, 8482}
+      ,				// chars
+      {3, 39, 75, 16, 145, 181, 217, 253, 287, 320}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeDPrm28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeDPrm28P.ttf",
+    1,
+    {
+     {
+      452,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 281, 340, 383, 8225}
+      ,				// chars
+      {3, 38, 73, 107, 141, 176, 211, 246, 281, 311}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFePIrm28P_ttf_xml = {
+    "data/fonts/felltypes/IMFePIrm28P.ttf",
+    1,
+    {
+     {
+      444,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 281, 340, 383, 8226}
+      ,				// chars
+      {3, 38, 73, 107, 141, 176, 211, 246, 281, 312}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeFCrm28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeFCrm28P.ttf",
+    1,
+    {
+     {
+      460,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 281, 340, 383, 8225}
+      ,				// chars
+      {3, 38, 73, 107, 141, 176, 211, 246, 281, 311}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeGPit28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeGPit28P.ttf",
+    1,
+    {
+     {
+      484,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 69, 106, 176, 213, 250, 305, 356, 894, 9758}
+      ,				// chars
+      {3, 40, 77, 112, 149, 186, 223, 260, 30, 327}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeENit28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeENit28P.ttf",
+    1,
+    {
+     {
+      500,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 68, 104, 173, 209, 245, 291, 346, 711, 8482}
+      ,				// chars
+      {3, 39, 75, 16, 145, 181, 217, 253, 287, 320}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeDPit28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeDPit28P.ttf",
+    1,
+    {
+     {
+      476,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 70, 108, 179, 217, 255, 315, 368, 7813, 57355}
+      ,				// chars
+      {3, 41, 79, 115, 153, 191, 229, 267, 300, 336}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeENrm28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeENrm28P.ttf",
+    1,
+    {
+     {
+      468,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 67, 102, 170, 205, 240, 281, 340, 383, 8225}
+      ,				// chars
+      {3, 38, 73, 107, 141, 176, 211, 246, 281, 311}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeGPsc28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeGPsc28P.ttf",
+    1,
+    {
+     {
+      428,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 201, 235, 273, 328, 375, 8216}
+      ,				// chars
+      {3, 37, 71, 104, 137, 171, 205, 239, 273, 303}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFePIsc28P_ttf_xml = {
+    "data/fonts/felltypes/IMFePIsc28P.ttf",
+    1,
+    {
+     {
+      428,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 201, 235, 273, 328, 375, 8216}
+      ,				// chars
+      {3, 37, 71, 104, 137, 171, 205, 239, 273, 303}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeFCsc28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeFCsc28P.ttf",
+    1,
+    {
+     {
+      436,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 201, 235, 273, 328, 375, 8212}
+      ,				// chars
+      {3, 37, 71, 104, 137, 171, 205, 239, 273, 302}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestIMFeFCit28P_ttf_xml = {
+    "data/fonts/felltypes/IMFeFCit28P.ttf",
+    1,
+    {
+     {
+      452,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 69, 106, 176, 213, 250, 305, 356, 894, 9758}
+      ,				// chars
+      {3, 40, 77, 112, 149, 186, 223, 260, 30, 327}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBokor_ttf_xml = {
+    "data/fonts/bokor/Bokor.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDidactGothic_ttf_xml = {
+    "data/fonts/didactgothic/DidactGothic.ttf",
+    1,
+    {
+     {
+      1048,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 179, 293, 430, 772, 1033, 1189, 7701, 7960, 8082}
+      ,				// chars
+      {3, 117, 231, 345, 459, 573, 687, 801, 915, 1029}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAllerta_Medium_ttf_xml = {
+    "data/fonts/allerta/Allerta-Medium.ttf",
+    2,
+    {
+     {
+      252,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 51, 69, 87, 107, 161, 200, 219, 238, 321}
+      ,				// chars
+      {3, 21, 39, 57, 75, 92, 110, 128, 146, 164}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 20, 45, 68, 0, 149, 0, 101, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAllerta_Stencil_ttf_xml = {
+    "data/fonts/allerta/Allerta-Stencil.ttf",
+    2,
+    {
+     {
+      252,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 51, 69, 87, 107, 161, 200, 219, 238, 321}
+      ,				// chars
+      {3, 21, 39, 57, 75, 92, 110, 128, 146, 164}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 20, 45, 68, 0, 149, 0, 101, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBuda_Light_ttf_xml = {
+    "data/fonts/buda/Buda-Light.ttf",
+    2,
+    {
+     {
+      552,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 192, 213, 234, 255}
+      ,				// chars
+      {191, 114, 30, 206, 193, 158, 8, 42, 103, 212}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 199, 31, 94, 78, 146, 41, 124, 168}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBrawler_Regular_ttf_xml = {
+    "data/fonts/brawler/Brawler-Regular.ttf",
+    2,
+    {
+     {
+      242,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 175, 197, 219, 241, 730}
+      ,				// chars
+      {2, 24, 46, 68, 90, 111, 129, 151, 173, 192}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 20, 45, 70, 95, 173, 148, 119, 116}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCarterOne_ttf_xml = {
+    "data/fonts/carterone/CarterOne.ttf",
+    1,
+    {
+     {
+      322,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 58, 84, 110, 169, 197, 223, 249, 515, 711}
+      ,				// chars
+      {3, 29, 55, 81, 106, 132, 158, 184, 210, 236}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCandal_ttf_xml = {
+    "data/fonts/candal/Candal.ttf",
+    1,
+    {
+     {
+      448,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {0, 61, 95, 162, 196, 230, 270, 340, 518, 806}
+      ,				// chars
+      {1, 36, 70, 104, 138, 172, 206, 240, 274, 308}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDorsa_Regular_ttf_xml = {
+    "data/fonts/dorsa/Dorsa-Regular.ttf",
+    2,
+    {
+     {
+      194,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 193, 214, 235, 338}
+      ,				// chars
+      {3, 24, 45, 66, 87, 107, 128, 149, 170, 191}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrimsonText_BoldItalic_ttf_xml = {
+    "data/fonts/crimson/CrimsonText-BoldItalic.ttf",
+    1,
+    {
+     {
+      336,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 75, 118, 195, 238, 281, 324, 368, 8194, 8730}
+      ,				// chars
+      {3, 46, 89, 132, 175, 218, 261, 304, 347, 390}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrimsonText_Bold_ttf_xml = {
+    "data/fonts/crimson/CrimsonText-Bold.ttf",
+    1,
+    {
+     {
+      464,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 105, 212, 285, 359, 550, 7719, 7794, 7873, 8222}
+      ,				// chars
+      {3, 76, 149, 222, 295, 368, 441, 514, 587, 660}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrimsonText_Italic_ttf_xml = {
+    "data/fonts/crimson/CrimsonText-Italic.ttf",
+    1,
+    {
+     {
+      328,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 75, 118, 195, 238, 281, 324, 367, 779, 8733}
+      ,				// chars
+      {3, 46, 89, 132, 175, 218, 261, 304, 347, 390}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrimsonText_Roman_ttf_xml = {
+    "data/fonts/crimson/CrimsonText-Roman.ttf",
+    1,
+    {
+     {
+      712,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 188, 310, 770, 995, 1117, 7792, 7920, 8060, 8195}
+      ,				// chars
+      {3, 125, 247, 369, 491, 613, 735, 857, 979, 1101}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrimsonText_Semibold_ttf_xml = {
+    "data/fonts/crimson/CrimsonText-Semibold.ttf",
+    1,
+    {
+     {
+      336,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 76, 120, 198, 242, 286, 331, 375, 779, 8712}
+      ,				// chars
+      {3, 47, 91, 135, 179, 223, 267, 311, 355, 399}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrimsonText_SemiboldItalic_ttf_xml = {
+    "data/fonts/crimson/CrimsonText-SemiboldItalic.ttf",
+    1,
+    {
+     {
+      296,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 75, 118, 195, 238, 281, 324, 368, 775, 8722}
+      ,				// chars
+      {3, 46, 89, 132, 175, 218, 261, 304, 347, 390}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAmaranth_Italic_ttf_xml = {
+    "data/fonts/amaranth/Amaranth-Italic.ttf",
+    2,
+    {
+     {
+      566,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 62, 41, 120, 22, 78, 105, 170, 193, 144}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 63, 40, 216, 125, 198, 108, 141, 123}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAmaranth_Bold_ttf_xml = {
+    "data/fonts/amaranth/Amaranth-Bold.ttf",
+    2,
+    {
+     {
+      566,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 62, 41, 121, 22, 78, 106, 168, 191, 145}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 63, 40, 216, 126, 196, 109, 142, 124}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAmaranth_Regular_ttf_xml = {
+    "data/fonts/amaranth/Amaranth-Regular.ttf",
+    2,
+    {
+     {
+      566,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 62, 41, 121, 22, 78, 106, 168, 191, 145}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 63, 40, 216, 126, 196, 109, 142, 124}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAmaranth_BoldItalic_ttf_xml = {
+    "data/fonts/amaranth/Amaranth-BoldItalic.ttf",
+    2,
+    {
+     {
+      566,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 62, 41, 120, 22, 78, 105, 177, 200, 144}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 63, 40, 223, 125, 205, 108, 141, 123}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCrushed_ttf_xml = {
+    "data/fonts/crushed/Crushed.ttf",
+    1,
+    {
+     {
+      696,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 68, 104, 173, 209, 245, 281, 318, 354, 711}
+      ,				// chars
+      {362, 4, 34, 345, 160, 178, 109, 155, 209, 355}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAdamina_Regular_ttf_xml = {
+    "data/fonts/adamina/Adamina-Regular.ttf",
+    2,
+    {
+     {
+      160,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAldrich_Regular_ttf_xml = {
+    "data/fonts/aldrich/Aldrich-Regular.ttf",
+    1,
+    {
+     {
+      262,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 56, 80, 104, 161, 186, 210, 234, 297, 381}
+      ,				// chars
+      {3, 25, 49, 73, 97, 121, 145, 169, 193, 217}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestFanwoodText_Italic_ttf_xml = {
+    "data/fonts/fanwoodtext/FanwoodText-Italic.ttf",
+    1,
+    {
+     {
+      312,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 73, 114, 188, 229, 270, 311, 352, 711, 8193}
+      ,				// chars
+      {3, 44, 85, 126, 167, 208, 249, 290, 331, 372}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestFanwoodText_Regular_ttf_xml = {
+    "data/fonts/fanwoodtext/FanwoodText-Regular.ttf",
+    1,
+    {
+     {
+      312,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 73, 114, 188, 229, 270, 311, 352, 711, 8193}
+      ,				// chars
+      {3, 44, 85, 126, 167, 208, 249, 290, 331, 372}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAnonymousPro_Regular_ttf_xml = {
+    "data/fonts/anonymouspro/AnonymousPro-Regular.ttf",
+    1,
+    {
+     {
+      974,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {0, 92, 187, 249, 311, 373, 938, 1051, 1114, 8963}
+      ,				// chars
+      {1, 61, 168, 125, 297, 357, 408, 469, 531, 563}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAnonymousPro_Bold_ttf_xml = {
+    "data/fonts/anonymouspro/AnonymousPro-Bold.ttf",
+    1,
+    {
+     {
+      974,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {0, 92, 187, 249, 311, 373, 938, 1051, 1114, 8963}
+      ,				// chars
+      {1, 61, 168, 125, 297, 357, 408, 469, 531, 563}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAnonymousPro_Italic_ttf_xml = {
+    "data/fonts/anonymouspro/AnonymousPro-Italic.ttf",
+    1,
+    {
+     {
+      974,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {0, 92, 187, 249, 311, 373, 938, 1051, 1114, 8963}
+      ,				// chars
+      {1, 61, 168, 125, 297, 357, 408, 469, 531, 563}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAnonymousPro_BoldItalic_ttf_xml = {
+    "data/fonts/anonymouspro/AnonymousPro-BoldItalic.ttf",
+    1,
+    {
+     {
+      974,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {0, 92, 187, 249, 311, 373, 938, 1051, 1114, 8963}
+      ,				// chars
+      {1, 61, 168, 125, 297, 357, 408, 469, 531, 563}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBevan_ttf_xml = {
+    "data/fonts/bevan/Bevan.ttf",
+    1,
+    {
+     {
+      400,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 75, 118, 194, 237, 280, 325, 368, 531, 8200}
+      ,				// chars
+      {3, 46, 89, 132, 175, 218, 261, 304, 347, 390}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArtifika_Regular_ttf_xml = {
+    "data/fonts/artifika/Artifika-Regular.ttf",
+    1,
+    {
+     {
+      160,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {2, 52, 73, 94, 115, 169, 190, 211, 232, 253}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAnton_ttf_xml = {
+    "data/fonts/anton/Anton.ttf",
+    1,
+    {
+     {
+      384,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 73, 114, 189, 230, 271, 315, 356, 517, 7809}
+      ,				// chars
+      {3, 44, 85, 126, 167, 208, 249, 290, 331, 372}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBattambang_Regular_ttf_xml = {
+    "data/fonts/battambang/Battambang-Regular.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestBattambang_Bold_ttf_xml = {
+    "data/fonts/battambang/Battambang-Bold.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCarme_Regular_ttf_xml = {
+    "data/fonts/carme/Carme-Regular.ttf",
+    2,
+    {
+     {
+      256,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 96, 117, 179, 204, 227, 249, 8201}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 70, 95, 164, 140, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCherryCreamSoda_ttf_xml = {
+    "data/fonts/cherrycreamsoda/CherryCreamSoda.ttf",
+    2,
+    {
+     {
+      422,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 175, 198, 220, 242, 381}
+      ,				// chars
+      {21, 43, 65, 87, 109, 217, 159, 122, 140, 10}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 39, 64, 89, 114, 138, 160, 172, 195}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestDeliusUnicase_Regular_ttf_xml = {
+    "data/fonts/deliusunicase/DeliusUnicase-Regular.ttf",
+    2,
+    {
+     {
+      240,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 57, 82, 107, 165, 190, 215, 240, 309, 956}
+      ,				// chars
+      {3, 28, 53, 78, 103, 128, 153, 178, 203, 119}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 179, 154, 125, 121}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestComingSoon_ttf_xml = {
+    "data/fonts/comingsoon/ComingSoon.ttf",
+    2,
+    {
+     {
+      412,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 175, 197, 219, 241, 376}
+      ,				// chars
+      {21, 43, 65, 87, 109, 216, 117, 211, 138, 187}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 39, 64, 89, 114, 138, 160, 171, 194}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestFreehand_ttf_xml = {
+    "data/fonts/freehand/Freehand.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAlice_Regular_ttf_xml = {
+    "data/fonts/alice/Alice-Regular.ttf",
+    1,
+    {
+     {
+      160,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 53, 74, 95, 116, 170, 191, 212, 233, 254}
+      ,				// chars
+      {3, 24, 45, 66, 87, 108, 129, 150, 171, 192}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestContrail_Regular_ttf_xml = {
+    "data/fonts/contrail/Contrail-Regular.ttf",
+    2,
+    {
+     {
+      368,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 55, 78, 101, 124, 180, 203, 226, 249, 339}
+      ,				// chars
+      {3, 26, 49, 72, 95, 117, 140, 163, 186, 209}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 178, 153, 124, 120}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCardo_Bold_ttf_xml = {
+    "data/fonts/cardo/Cardo-Bold.ttf",
+    1,
+    {
+     {
+      3676,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 295, 653, 883, 5792, 7961, 8212, 10219, 58808, 61909}
+      ,				// chars
+      {3, 232, 461, 691, 921, 1151, 1381, 1610, 1840, 2070}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCardo_Italic_ttf_xml = {
+    "data/fonts/cardo/Cardo-Italic.ttf",
+    1,
+    {
+     {
+      3788,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 306, 662, 921, 5833, 8008, 8313, 42804, 58625, 61889}
+      ,				// chars
+      {3, 243, 483, 724, 965, 1206, 1447, 1687, 1926, 2139}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCardo_Regular_ttf_xml = {
+    "data/fonts/cardo/Cardo-Regular.ttf",
+    1,
+    {
+     {
+      4686,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 376, 802, 4347, 8000, 8710, 57497, 59336, 61431, 62510}
+      ,				// chars
+      {3, 313, 623, 934, 1245, 729, 1866, 2175, 2481, 2792}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAsset_ttf_xml = {
+    "data/fonts/asset/Asset.ttf",
+    2,
+    {
+     {
+      210,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 176, 198, 220, 242, 312}
+      ,				// chars
+      {3, 25, 47, 69, 91, 112, 134, 156, 178, 200}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 177, 152, 123, 119}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestChangaOne_Regular_ttf_xml = {
+    "data/fonts/changaone/ChangaOne-Regular.ttf",
+    2,
+    {
+     {
+      320,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 56, 80, 104, 162, 188, 212, 236, 339, 8224}
+      ,				// chars
+      {3, 27, 51, 75, 99, 123, 147, 171, 195, 219}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 176, 151, 122, 118}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAclonica_ttf_xml = {
+    "data/fonts/aclonica/Aclonica.ttf",
+    2,
+    {
+     {
+      718,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 68, 104, 173, 209, 245, 281, 317, 353, 711}
+      ,				// chars
+      {3, 50, 86, 233, 201, 224, 267, 333, 172, 170}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 32, 57, 82, 107, 219, 124, 140, 156}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCraftyGirls_ttf_xml = {
+    "data/fonts/craftygirls/CraftyGirls.ttf",
+    2,
+    {
+     {
+      428,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 54, 76, 98, 120, 175, 197, 219, 241, 376}
+      ,				// chars
+      {21, 43, 65, 87, 109, 219, 117, 214, 138, 189}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {0, 0, 39, 64, 89, 114, 138, 160, 173, 196}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestArchitectsDaughter_ttf_xml = {
+    "data/fonts/architectsdaughter/ArchitectsDaughter.ttf",
+    1,
+    {
+     {
+      282,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 66, 100, 167, 202, 236, 270, 311, 349, 508}
+      ,				// chars
+      {3, 37, 71, 104, 138, 172, 206, 240, 274, 308}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestContent_Bold_ttf_xml = {
+    "data/fonts/content/Content-Bold.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestContent_Regular_ttf_xml = {
+    "data/fonts/content/Content-Regular.ttf",
+    2,
+    {
+     {
+      96,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 45, 58, 6019, 6032, 6045, 6058, 6073, 6086, 6099}
+      ,				// chars
+      {3, 16, 29, 39, 52, 65, 78, 91, 104, 117}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 0, 0, 0, 0, 0, 0, 0}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAbel_Regular_ttf_xml = {
+    "data/fonts/abel/Abel-Regular.ttf",
+    2,
+    {
+     {
+      248,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 56, 80, 104, 161, 186, 210, 234, 297, 381}
+      ,				// chars
+      {3, 27, 51, 75, 99, 123, 147, 171, 195, 219}
+      ,				// glyph ids
+      }
+     ,
+     {
+      262,			// length
+      0,			// format
+      1,			// platform id
+      0,			// encoding id
+      10,			// num_mappings
+      {0, 25, 50, 75, 100, 125, 150, 175, 200, 225}
+      ,				// chars
+      {1, 0, 21, 46, 71, 96, 178, 153, 124, 120}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestCuprum_ttf_xml = {
+    "data/fonts/cuprum/Cuprum.ttf",
+    1,
+    {
+     {
+      352,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {32, 69, 106, 176, 213, 250, 324, 1028, 1066, 1103}
+      ,				// chars
+      {3, 40, 77, 114, 151, 188, 225, 262, 299, 336}
+      ,				// glyph ids
+      }
+     }
+  };
+
+  TestCMap kTestAndika_R_ttf_xml = {
+    "data/fonts/andika/Andika-R.ttf",
+    1,
+    {
+     {
+      4792,			// length
+      4,			// format
+      3,			// platform id
+      1,			// encoding id
+      10,			// num_mappings
+      {13, 281, 498, 715, 1067, 7424, 7691, 7908, 8580, 61860}
+      ,				// chars
+      {2, 817, 745, 2639, 597, 474, 699, 2213, 644, 876}
+      ,				// glyph ids
+      }
+     }
+  };
+
+}				// namespace sfntly
diff --git a/test/autogenerated/cmap_test_data.h b/test/autogenerated/cmap_test_data.h
new file mode 100644
index 0000000..63fd9c9
--- /dev/null
+++ b/test/autogenerated/cmap_test_data.h
@@ -0,0 +1,353 @@
+/*
+ * !!! DO NOT EDIT !!!
+ * THIS FILE IS GENERATED BY A SCRIPT.
+ * FOR MORE DETAILS SEE 'README-test_data.txt'.
+ */
+
+/*
+ * Copyright 2011 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SFNTLY_CPP_SRC_TEST_CMAP_TEST_DATA_H_
+#define SFNTLY_CPP_SRC_TEST_CMAP_TEST_DATA_H_
+
+#include "sfntly/port/type.h"
+
+namespace sfntly
+{
+  struct ProtoCMap
+  {
+    int32_t length;
+    int32_t format;
+    int32_t platform_id;
+    int32_t encoding_id;
+    int32_t num_mappings;
+    int32_t chars[10];
+    int32_t glyph_ids[10];
+  };
+
+  struct TestCMap
+  {
+    const char *name;
+    int32_t num_cmaps;
+    ProtoCMap cmaps[2];
+  };
+
+  extern TestCMap kTestCousine_BoldItalic_ttf_xml;
+  extern TestCMap kTestCousine_Bold_ttf_xml;
+  extern TestCMap kTestCousine_Regular_ttf_xml;
+  extern TestCMap kTestCousine_Italic_ttf_xml;
+  extern TestCMap kTestCedarville_Cursive_ttf_xml;
+  extern TestCMap kTestDancingScript_Bold_ttf_xml;
+  extern TestCMap kTestDancingScript_Regular_ttf_xml;
+  extern TestCMap kTestDamion_Regular_ttf_xml;
+  extern TestCMap kTestAnnieUseYourTelescope_ttf_xml;
+  extern TestCMap kTestDeliusSwashCaps_Regular_ttf_xml;
+  extern TestCMap kTestDelius_Regular_ttf_xml;
+  extern TestCMap kTestCoveredByYourGrace_ttf_xml;
+  extern TestCMap kTestEBGaramond_Regular_ttf_xml;
+  extern TestCMap kTestCabinSketch_Bold_ttf_xml;
+  extern TestCMap kTestAllan_Bold_ttf_xml;
+  extern TestCMap kTestCoda_Caption_Heavy_ttf_xml;
+  extern TestCMap kTestCoda_Heavy_ttf_xml;
+  extern TestCMap kTestForum_Regular_ttf_xml;
+  extern TestCMap kTestAlike_Regular_ttf_xml;
+  extern TestCMap kTestCorben_Bold_ttf_xml;
+  extern TestCMap kTestCaudex_Regular_ttf_xml;
+  extern TestCMap kTestCaudex_BoldItalic_ttf_xml;
+  extern TestCMap kTestCaudex_Italic_ttf_xml;
+  extern TestCMap kTestCaudex_Bold_ttf_xml;
+  extern TestCMap kTestCabin_MediumItalic_ttf_xml;
+  extern TestCMap kTestCabin_SemiBold_ttf_xml;
+  extern TestCMap kTestCabin_SemiBoldItalic_ttf_xml;
+  extern TestCMap kTestCabin_BoldItalic_ttf_xml;
+  extern TestCMap kTestCabin_Medium_ttf_xml;
+  extern TestCMap kTestCabin_Italic_ttf_xml;
+  extern TestCMap kTestCabin_Bold_ttf_xml;
+  extern TestCMap kTestCabin_Regular_ttf_xml;
+  extern TestCMap kTestDawningofaNewDay_ttf_xml;
+  extern TestCMap kTestDangrek_ttf_xml;
+  extern TestCMap kTestBlackOpsOne_ttf_xml;
+  extern TestCMap kTestFrancoisOne_ttf_xml;
+  extern TestCMap kTestBowlbyOne_ttf_xml;
+  extern TestCMap kTestBowlbyOneSC_ttf_xml;
+  extern TestCMap kTestCalligraffiti_ttf_xml;
+  extern TestCMap kTestBangers_ttf_xml;
+  extern TestCMap kTestAstloch_Regular_ttf_xml;
+  extern TestCMap kTestAstloch_Bold_ttf_xml;
+  extern TestCMap kTestAngkor_ttf_xml;
+  extern TestCMap kTestAbrilFatface_Regular_ttf_xml;
+  extern TestCMap kTestCantarell_BoldOblique_ttf_xml;
+  extern TestCMap kTestCantarell_Oblique_ttf_xml;
+  extern TestCMap kTestCantarell_Bold_ttf_xml;
+  extern TestCMap kTestCantarell_Regular_ttf_xml;
+  extern TestCMap kTestArvo_Bold_ttf_xml;
+  extern TestCMap kTestArvo_Italic_ttf_xml;
+  extern TestCMap kTestArvo_BoldItalic_ttf_xml;
+  extern TestCMap kTestArvo_Regular_ttf_xml;
+  extern TestCMap kTestChewy_ttf_xml;
+  extern TestCMap kTestBigshotOne_ttf_xml;
+  extern TestCMap kTestChenla_ttf_xml;
+  extern TestCMap kTestBayon_ttf_xml;
+  extern TestCMap kTestCoustard_Black_ttf_xml;
+  extern TestCMap kTestCoustard_Regular_ttf_xml;
+  extern TestCMap kTestAmaticSC_Bold_ttf_xml;
+  extern TestCMap kTestAmaticSC_Regular_ttf_xml;
+  extern TestCMap kTestComfortaa_Light_ttf_xml;
+  extern TestCMap kTestComfortaa_Bold_ttf_xml;
+  extern TestCMap kTestComfortaa_Regular_ttf_xml;
+  extern TestCMap kTestExpletusSans_Bold_ttf_xml;
+  extern TestCMap kTestExpletusSans_MediumItalic_ttf_xml;
+  extern TestCMap kTestExpletusSans_Medium_ttf_xml;
+  extern TestCMap kTestExpletusSans_SemiBold_ttf_xml;
+  extern TestCMap kTestExpletusSans_Regular_ttf_xml;
+  extern TestCMap kTestExpletusSans_Italic_ttf_xml;
+  extern TestCMap kTestExpletusSans_SemiBoldItalic_ttf_xml;
+  extern TestCMap kTestExpletusSans_BoldItalic_ttf_xml;
+  extern TestCMap kTestAubrey_Regular_ttf_xml;
+  extern TestCMap kTestAntic_Regular_ttf_xml;
+  extern TestCMap kTestCopse_Regular_ttf_xml;
+  extern TestCMap kTestDaysOne_Regular_ttf_xml;
+  extern TestCMap kTestActor_Regular_ttf_xml;
+  extern TestCMap kTestBentham_Regular_ttf_xml;
+  extern TestCMap kTestFedero_Regular_ttf_xml;
+  extern TestCMap kTestArimo_Italic_ttf_xml;
+  extern TestCMap kTestArimo_BoldItalic_ttf_xml;
+  extern TestCMap kTestArimo_Bold_ttf_xml;
+  extern TestCMap kTestArimo_Regular_ttf_xml;
+  extern TestCMap kTestIMFeDPsc28P_ttf_xml;
+  extern TestCMap kTestIMFeGPrm28P_ttf_xml;
+  extern TestCMap kTestIMFeENsc28P_ttf_xml;
+  extern TestCMap kTestIMFePIit28P_ttf_xml;
+  extern TestCMap kTestIMFeDPrm28P_ttf_xml;
+  extern TestCMap kTestIMFePIrm28P_ttf_xml;
+  extern TestCMap kTestIMFeFCrm28P_ttf_xml;
+  extern TestCMap kTestIMFeGPit28P_ttf_xml;
+  extern TestCMap kTestIMFeENit28P_ttf_xml;
+  extern TestCMap kTestIMFeDPit28P_ttf_xml;
+  extern TestCMap kTestIMFeENrm28P_ttf_xml;
+  extern TestCMap kTestIMFeGPsc28P_ttf_xml;
+  extern TestCMap kTestIMFePIsc28P_ttf_xml;
+  extern TestCMap kTestIMFeFCsc28P_ttf_xml;
+  extern TestCMap kTestIMFeFCit28P_ttf_xml;
+  extern TestCMap kTestBokor_ttf_xml;
+  extern TestCMap kTestDidactGothic_ttf_xml;
+  extern TestCMap kTestAllerta_Medium_ttf_xml;
+  extern TestCMap kTestAllerta_Stencil_ttf_xml;
+  extern TestCMap kTestBuda_Light_ttf_xml;
+  extern TestCMap kTestBrawler_Regular_ttf_xml;
+  extern TestCMap kTestCarterOne_ttf_xml;
+  extern TestCMap kTestCandal_ttf_xml;
+  extern TestCMap kTestDorsa_Regular_ttf_xml;
+  extern TestCMap kTestCrimsonText_BoldItalic_ttf_xml;
+  extern TestCMap kTestCrimsonText_Bold_ttf_xml;
+  extern TestCMap kTestCrimsonText_Italic_ttf_xml;
+  extern TestCMap kTestCrimsonText_Roman_ttf_xml;
+  extern TestCMap kTestCrimsonText_Semibold_ttf_xml;
+  extern TestCMap kTestCrimsonText_SemiboldItalic_ttf_xml;
+  extern TestCMap kTestAmaranth_Italic_ttf_xml;
+  extern TestCMap kTestAmaranth_Bold_ttf_xml;
+  extern TestCMap kTestAmaranth_Regular_ttf_xml;
+  extern TestCMap kTestAmaranth_BoldItalic_ttf_xml;
+  extern TestCMap kTestCrushed_ttf_xml;
+  extern TestCMap kTestAdamina_Regular_ttf_xml;
+  extern TestCMap kTestAldrich_Regular_ttf_xml;
+  extern TestCMap kTestFanwoodText_Italic_ttf_xml;
+  extern TestCMap kTestFanwoodText_Regular_ttf_xml;
+  extern TestCMap kTestAnonymousPro_Regular_ttf_xml;
+  extern TestCMap kTestAnonymousPro_Bold_ttf_xml;
+  extern TestCMap kTestAnonymousPro_Italic_ttf_xml;
+  extern TestCMap kTestAnonymousPro_BoldItalic_ttf_xml;
+  extern TestCMap kTestBevan_ttf_xml;
+  extern TestCMap kTestArtifika_Regular_ttf_xml;
+  extern TestCMap kTestAnton_ttf_xml;
+  extern TestCMap kTestBattambang_Regular_ttf_xml;
+  extern TestCMap kTestBattambang_Bold_ttf_xml;
+  extern TestCMap kTestCarme_Regular_ttf_xml;
+  extern TestCMap kTestCherryCreamSoda_ttf_xml;
+  extern TestCMap kTestDeliusUnicase_Regular_ttf_xml;
+  extern TestCMap kTestComingSoon_ttf_xml;
+  extern TestCMap kTestFreehand_ttf_xml;
+  extern TestCMap kTestAlice_Regular_ttf_xml;
+  extern TestCMap kTestContrail_Regular_ttf_xml;
+  extern TestCMap kTestCardo_Bold_ttf_xml;
+  extern TestCMap kTestCardo_Italic_ttf_xml;
+  extern TestCMap kTestCardo_Regular_ttf_xml;
+  extern TestCMap kTestAsset_ttf_xml;
+  extern TestCMap kTestChangaOne_Regular_ttf_xml;
+  extern TestCMap kTestAclonica_ttf_xml;
+  extern TestCMap kTestCraftyGirls_ttf_xml;
+  extern TestCMap kTestArchitectsDaughter_ttf_xml;
+  extern TestCMap kTestContent_Bold_ttf_xml;
+  extern TestCMap kTestContent_Regular_ttf_xml;
+  extern TestCMap kTestAbel_Regular_ttf_xml;
+  extern TestCMap kTestCuprum_ttf_xml;
+  extern TestCMap kTestAndika_R_ttf_xml;
+
+  const TestCMap kAllTestCMaps[] = {
+    kTestCousine_BoldItalic_ttf_xml,
+    kTestCousine_Bold_ttf_xml,
+    kTestCousine_Regular_ttf_xml,
+    kTestCousine_Italic_ttf_xml,
+    kTestCedarville_Cursive_ttf_xml,
+    kTestDancingScript_Bold_ttf_xml,
+    kTestDancingScript_Regular_ttf_xml,
+    kTestDamion_Regular_ttf_xml,
+    kTestAnnieUseYourTelescope_ttf_xml,
+    kTestDeliusSwashCaps_Regular_ttf_xml,
+    kTestDelius_Regular_ttf_xml,
+    kTestCoveredByYourGrace_ttf_xml,
+    kTestEBGaramond_Regular_ttf_xml,
+    kTestCabinSketch_Bold_ttf_xml,
+    kTestAllan_Bold_ttf_xml,
+    kTestCoda_Caption_Heavy_ttf_xml,
+    kTestCoda_Heavy_ttf_xml,
+    kTestForum_Regular_ttf_xml,
+    kTestAlike_Regular_ttf_xml,
+    kTestCorben_Bold_ttf_xml,
+    kTestCaudex_Regular_ttf_xml,
+    kTestCaudex_BoldItalic_ttf_xml,
+    kTestCaudex_Italic_ttf_xml,
+    kTestCaudex_Bold_ttf_xml,
+    kTestCabin_MediumItalic_ttf_xml,
+    kTestCabin_SemiBold_ttf_xml,
+    kTestCabin_SemiBoldItalic_ttf_xml,
+    kTestCabin_BoldItalic_ttf_xml,
+    kTestCabin_Medium_ttf_xml,
+    kTestCabin_Italic_ttf_xml,
+    kTestCabin_Bold_ttf_xml,
+    kTestCabin_Regular_ttf_xml,
+    kTestDawningofaNewDay_ttf_xml,
+    kTestDangrek_ttf_xml,
+    kTestBlackOpsOne_ttf_xml,
+    kTestFrancoisOne_ttf_xml,
+    kTestBowlbyOne_ttf_xml,
+    kTestBowlbyOneSC_ttf_xml,
+    kTestCalligraffiti_ttf_xml,
+    kTestBangers_ttf_xml,
+    kTestAstloch_Regular_ttf_xml,
+    kTestAstloch_Bold_ttf_xml,
+    kTestAngkor_ttf_xml,
+    kTestAbrilFatface_Regular_ttf_xml,
+    kTestCantarell_BoldOblique_ttf_xml,
+    kTestCantarell_Oblique_ttf_xml,
+    kTestCantarell_Bold_ttf_xml,
+    kTestCantarell_Regular_ttf_xml,
+    kTestArvo_Bold_ttf_xml,
+    kTestArvo_Italic_ttf_xml,
+    kTestArvo_BoldItalic_ttf_xml,
+    kTestArvo_Regular_ttf_xml,
+    kTestChewy_ttf_xml,
+    kTestBigshotOne_ttf_xml,
+    kTestChenla_ttf_xml,
+    kTestBayon_ttf_xml,
+    kTestCoustard_Black_ttf_xml,
+    kTestCoustard_Regular_ttf_xml,
+    kTestAmaticSC_Bold_ttf_xml,
+    kTestAmaticSC_Regular_ttf_xml,
+    kTestComfortaa_Light_ttf_xml,
+    kTestComfortaa_Bold_ttf_xml,
+    kTestComfortaa_Regular_ttf_xml,
+    kTestExpletusSans_Bold_ttf_xml,
+    kTestExpletusSans_MediumItalic_ttf_xml,
+    kTestExpletusSans_Medium_ttf_xml,
+    kTestExpletusSans_SemiBold_ttf_xml,
+    kTestExpletusSans_Regular_ttf_xml,
+    kTestExpletusSans_Italic_ttf_xml,
+    kTestExpletusSans_SemiBoldItalic_ttf_xml,
+    kTestExpletusSans_BoldItalic_ttf_xml,
+    kTestAubrey_Regular_ttf_xml,
+    kTestAntic_Regular_ttf_xml,
+    kTestCopse_Regular_ttf_xml,
+    kTestDaysOne_Regular_ttf_xml,
+    kTestActor_Regular_ttf_xml,
+    kTestBentham_Regular_ttf_xml,
+    kTestFedero_Regular_ttf_xml,
+    kTestArimo_Italic_ttf_xml,
+    kTestArimo_BoldItalic_ttf_xml,
+    kTestArimo_Bold_ttf_xml,
+    kTestArimo_Regular_ttf_xml,
+    kTestIMFeDPsc28P_ttf_xml,
+    kTestIMFeGPrm28P_ttf_xml,
+    kTestIMFeENsc28P_ttf_xml,
+    kTestIMFePIit28P_ttf_xml,
+    kTestIMFeDPrm28P_ttf_xml,
+    kTestIMFePIrm28P_ttf_xml,
+    kTestIMFeFCrm28P_ttf_xml,
+    kTestIMFeGPit28P_ttf_xml,
+    kTestIMFeENit28P_ttf_xml,
+    kTestIMFeDPit28P_ttf_xml,
+    kTestIMFeENrm28P_ttf_xml,
+    kTestIMFeGPsc28P_ttf_xml,
+    kTestIMFePIsc28P_ttf_xml,
+    kTestIMFeFCsc28P_ttf_xml,
+    kTestIMFeFCit28P_ttf_xml,
+    kTestBokor_ttf_xml,
+    kTestDidactGothic_ttf_xml,
+    kTestAllerta_Medium_ttf_xml,
+    kTestAllerta_Stencil_ttf_xml,
+    kTestBuda_Light_ttf_xml,
+    kTestBrawler_Regular_ttf_xml,
+    kTestCarterOne_ttf_xml,
+    kTestCandal_ttf_xml,
+    kTestDorsa_Regular_ttf_xml,
+    kTestCrimsonText_BoldItalic_ttf_xml,
+    kTestCrimsonText_Bold_ttf_xml,
+    kTestCrimsonText_Italic_ttf_xml,
+    kTestCrimsonText_Roman_ttf_xml,
+    kTestCrimsonText_Semibold_ttf_xml,
+    kTestCrimsonText_SemiboldItalic_ttf_xml,
+    kTestAmaranth_Italic_ttf_xml,
+    kTestAmaranth_Bold_ttf_xml,
+    kTestAmaranth_Regular_ttf_xml,
+    kTestAmaranth_BoldItalic_ttf_xml,
+    kTestCrushed_ttf_xml,
+    kTestAdamina_Regular_ttf_xml,
+    kTestAldrich_Regular_ttf_xml,
+    kTestFanwoodText_Italic_ttf_xml,
+    kTestFanwoodText_Regular_ttf_xml,
+    kTestAnonymousPro_Regular_ttf_xml,
+    kTestAnonymousPro_Bold_ttf_xml,
+    kTestAnonymousPro_Italic_ttf_xml,
+    kTestAnonymousPro_BoldItalic_ttf_xml,
+    kTestBevan_ttf_xml,
+    kTestArtifika_Regular_ttf_xml,
+    kTestAnton_ttf_xml,
+    kTestBattambang_Regular_ttf_xml,
+    kTestBattambang_Bold_ttf_xml,
+    kTestCarme_Regular_ttf_xml,
+    kTestCherryCreamSoda_ttf_xml,
+    kTestDeliusUnicase_Regular_ttf_xml,
+    kTestComingSoon_ttf_xml,
+    kTestFreehand_ttf_xml,
+    kTestAlice_Regular_ttf_xml,
+    kTestContrail_Regular_ttf_xml,
+    kTestCardo_Bold_ttf_xml,
+    kTestCardo_Italic_ttf_xml,
+    kTestCardo_Regular_ttf_xml,
+    kTestAsset_ttf_xml,
+    kTestChangaOne_Regular_ttf_xml,
+    kTestAclonica_ttf_xml,
+    kTestCraftyGirls_ttf_xml,
+    kTestArchitectsDaughter_ttf_xml,
+    kTestContent_Bold_ttf_xml,
+    kTestContent_Regular_ttf_xml,
+    kTestAbel_Regular_ttf_xml,
+    kTestCuprum_ttf_xml,
+    kTestAndika_R_ttf_xml
+  };
+}				// namespace sfntly
+
+#endif //SFNTLY_CPP_SRC_TEST_CMAP_TEST_DATA_H_