diff options
Diffstat (limited to 'test/verify_hmtx.cc')
-rw-r--r-- | test/verify_hmtx.cc | 202 |
1 files changed, 9 insertions, 193 deletions
diff --git a/test/verify_hmtx.cc b/test/verify_hmtx.cc index 67ea6a3..d37bba9 100644 --- a/test/verify_hmtx.cc +++ b/test/verify_hmtx.cc @@ -21,8 +21,8 @@ namespace sfntly { -const int32_t HMTX_ENTRIES_COUNT = 197; -const int32_t HMTX_LSB_COUNT = 0; +const int32_t HMTX_ENTRIES_COUNT = 1499; +const int32_t HMTX_LSB_COUNT = 3; struct HmtxEntry { int32_t advance_width_; @@ -33,7 +33,7 @@ struct HmtxEntry { }; const HmtxEntry HMTX_ENTRIES[] = { - HmtxEntry(32768, 0), // 0 + HmtxEntry(748, 68), // 0 HmtxEntry(0, 0), // 1 HmtxEntry(682, 0), // 2 HmtxEntry(616, 0), // 3 @@ -43,196 +43,8 @@ const HmtxEntry HMTX_ENTRIES[] = { HmtxEntry(1017, 25), // 7 HmtxEntry(1402, 104), // 8 HmtxEntry(1241, 100), // 9 - HmtxEntry(382, 129), // 10 - HmtxEntry(548, 41), // 11 - HmtxEntry(536, 90), // 12 - HmtxEntry(913, 33), // 13 - HmtxEntry(894, 78), // 14 - HmtxEntry(399, 103), // 15 - HmtxEntry(866, 109), // 16 - HmtxEntry(405, 103), // 17 - HmtxEntry(808, -23), // 18 - HmtxEntry(1136, 100), // 19 - HmtxEntry(1136, 424), // 20 - HmtxEntry(1136, 109), // 21 - HmtxEntry(1126, 113), // 22 - HmtxEntry(1136, 88), // 23 - HmtxEntry(1136, 135), // 24 - HmtxEntry(1136, 129), // 25 - HmtxEntry(1136, 111), // 26 - HmtxEntry(1136, 104), // 27 - HmtxEntry(1136, 143), // 28 - HmtxEntry(423, 113), // 29 - HmtxEntry(423, 113), // 30 - HmtxEntry(843, 84), // 31 - HmtxEntry(907, 66), // 32 - HmtxEntry(856, 92), // 33 - HmtxEntry(985, 57), // 34 - HmtxEntry(1624, 41), // 35 - HmtxEntry(1302, 72), // 36 - HmtxEntry(1179, 121), // 37 - HmtxEntry(1220, 100), // 38 - HmtxEntry(1220, 121), // 39 - HmtxEntry(1142, 121), // 40 - HmtxEntry(1146, 121), // 41 - HmtxEntry(1363, 100), // 42 - HmtxEntry(1198, 121), // 43 - HmtxEntry(444, 154), // 44 - HmtxEntry(1140, 113), // 45 - HmtxEntry(1239, 121), // 46 - HmtxEntry(1105, 121), // 47 - HmtxEntry(1562, 121), // 48 - HmtxEntry(1271, 121), // 49 - HmtxEntry(1333, 92), // 50 - HmtxEntry(1099, 121), // 51 - HmtxEntry(1370, 92), // 52 - HmtxEntry(1101, 121), // 53 - HmtxEntry(1079, 45), // 54 - HmtxEntry(1243, 88), // 55 - HmtxEntry(1265, 121), // 56 - HmtxEntry(1245, 80), // 57 - HmtxEntry(1576, 84), // 58 - HmtxEntry(1214, 74), // 59 - HmtxEntry(1179, 76), // 60 - HmtxEntry(1325, 100), // 61 - HmtxEntry(626, 131), // 62 - HmtxEntry(811, -29), // 63 - HmtxEntry(638, 129), // 64 - HmtxEntry(927, 133), // 65 - HmtxEntry(1241, 88), // 66 - HmtxEntry(516, 96), // 67 - HmtxEntry(993, 84), // 68 - HmtxEntry(1044, 129), // 69 - HmtxEntry(921, 76), // 70 - HmtxEntry(1044, 73), // 71 - HmtxEntry(1013, 98), // 72 - HmtxEntry(716, 125), // 73 - HmtxEntry(1021, 73), // 74 - HmtxEntry(1064, 129), // 75 - HmtxEntry(430, 131), // 76 - HmtxEntry(468, -119), // 77 - HmtxEntry(944, 129), // 78 - HmtxEntry(430, 150), // 79 - HmtxEntry(1533, 129), // 80 - HmtxEntry(1064, 129), // 81 - HmtxEntry(1054, 102), // 82 - HmtxEntry(1044, 129), // 83 - HmtxEntry(1048, 73), // 84 - HmtxEntry(686, 129), // 85 - HmtxEntry(921, 96), // 86 - HmtxEntry(696, 102), // 87 - HmtxEntry(1064, 120), // 88 - HmtxEntry(1024, 82), // 89 - HmtxEntry(1374, 68), // 90 - HmtxEntry(901, 53), // 91 - HmtxEntry(1064, 120), // 92 - HmtxEntry(962, 90), // 93 - HmtxEntry(747, 90), // 94 - HmtxEntry(368, 125), // 95 - HmtxEntry(747, 133), // 96 - HmtxEntry(735, 63), // 97 - HmtxEntry(309, 28), // 98 - HmtxEntry(808, 80), // 99 - HmtxEntry(1120, 84), // 100 - HmtxEntry(856, 63), // 101 - HmtxEntry(1110, 74), // 102 - HmtxEntry(305, 90), // 103 - HmtxEntry(686, 43), // 104 - HmtxEntry(794, 76), // 105 - HmtxEntry(942, 41), // 106 - HmtxEntry(872, 59), // 107 - HmtxEntry(1026, 154), // 108 - HmtxEntry(950, 109), // 109 - HmtxEntry(1189, 94), // 110 - HmtxEntry(706, 63), // 111 - HmtxEntry(598, 49), // 112 - HmtxEntry(983, 150), // 113 - HmtxEntry(550, 97), // 114 - HmtxEntry(1003, 154), // 115 - HmtxEntry(1150, 121), // 116 - HmtxEntry(438, 142), // 117 - HmtxEntry(473, 117), // 118 - HmtxEntry(933, 98), // 119 - HmtxEntry(954, 18), // 120 - HmtxEntry(1292, 82), // 121 - HmtxEntry(1292, 82), // 122 - HmtxEntry(1292, 82), // 123 - HmtxEntry(1292, 82), // 124 - HmtxEntry(1292, 82), // 125 - HmtxEntry(1292, 82), // 126 - HmtxEntry(1388, 83), // 127 - HmtxEntry(1220, 120), // 128 - HmtxEntry(1146, 131), // 129 - HmtxEntry(1146, 131), // 130 - HmtxEntry(1146, 131), // 131 - HmtxEntry(1146, 131), // 132 - HmtxEntry(440, -53), // 133 - HmtxEntry(440, 164), // 134 - HmtxEntry(440, -103), // 135 - HmtxEntry(440, -90), // 136 - HmtxEntry(3969, 144), // 137 - HmtxEntry(1292, 131), // 138 - HmtxEntry(1329, 102), // 139 - HmtxEntry(1329, 102), // 140 - HmtxEntry(1329, 102), // 141 - HmtxEntry(1329, 102), // 142 - HmtxEntry(1329, 102), // 143 - HmtxEntry(833, 108), // 144 - HmtxEntry(2416, 96), // 145 - HmtxEntry(1298, 131), // 146 - HmtxEntry(1298, 131), // 147 - HmtxEntry(1298, 131), // 148 - HmtxEntry(1298, 131), // 149 - HmtxEntry(1179, 86), // 150 - HmtxEntry(1329, 145), // 151 - HmtxEntry(1212, 92), // 152 - HmtxEntry(1036, 94), // 153 - HmtxEntry(1036, 94), // 154 - HmtxEntry(1036, 94), // 155 - HmtxEntry(1036, 94), // 156 - HmtxEntry(1036, 94), // 157 - HmtxEntry(1036, 94), // 158 - HmtxEntry(1486, 84), // 159 - HmtxEntry(1011, 86), // 160 - HmtxEntry(1046, 108), // 161 - HmtxEntry(1046, 108), // 162 - HmtxEntry(1046, 108), // 163 - HmtxEntry(1046, 108), // 164 - HmtxEntry(428, -75), // 165 - HmtxEntry(421, 150), // 166 - HmtxEntry(888, 115), // 167 - HmtxEntry(667, 8), // 168 - HmtxEntry(1030, 82), // 169 - HmtxEntry(1044, 139), // 170 - HmtxEntry(1060, 112), // 171 - HmtxEntry(1062, 112), // 172 - HmtxEntry(1062, 112), // 173 - HmtxEntry(1062, 112), // 174 - HmtxEntry(1060, 112), // 175 - HmtxEntry(911, 119), // 176 - HmtxEntry(1024, 86), // 177 - HmtxEntry(1032, 130), // 178 - HmtxEntry(1064, 130), // 179 - HmtxEntry(1064, 130), // 180 - HmtxEntry(1064, 130), // 181 - HmtxEntry(1064, 130), // 182 - HmtxEntry(1003, 129), // 183 - HmtxEntry(1064, 130), // 184 - HmtxEntry(1087, 170), // 185 - HmtxEntry(1001, 170), // 186 - HmtxEntry(1290, 150), // 187 - HmtxEntry(385, 83), // 188 - HmtxEntry(385, 95), // 189 - HmtxEntry(385, 99), // 190 - HmtxEntry(385, 106), // 191 - HmtxEntry(677, 81), // 192 - HmtxEntry(677, 97), // 193 - HmtxEntry(688, 113), // 194 - HmtxEntry(688, 91), // 195 - HmtxEntry(1089, 135), // 196 - - HmtxEntry(32768, 0) // 197: no such element, used to check the logic. }; +const int32_t NUM_HMTX_ENTRIES = 10; static bool VerifyHMTX(Table* table) { HorizontalMetricsTablePtr hmtx = down_cast<HorizontalMetricsTable*>(table); @@ -243,11 +55,15 @@ static bool VerifyHMTX(Table* table) { EXPECT_EQ(hmtx->NumberOfHMetrics(), HMTX_ENTRIES_COUNT); EXPECT_EQ(hmtx->NumberOfLSBs(), HMTX_LSB_COUNT); - for (int32_t i = 0; i < HMTX_ENTRIES_COUNT + 1; ++i) { + for (int32_t i = 0; i < NUM_HMTX_ENTRIES; ++i) { EXPECT_EQ(hmtx->AdvanceWidth(i), HMTX_ENTRIES[i].advance_width_); EXPECT_EQ(hmtx->LeftSideBearing(i), HMTX_ENTRIES[i].lsb_); } + // No such element case. + EXPECT_EQ(hmtx->AdvanceWidth(HMTX_ENTRIES_COUNT), + HMTX_ENTRIES[0].advance_width_); + EXPECT_EQ(hmtx->LeftSideBearing(HMTX_ENTRIES_COUNT), HMTX_ENTRIES[0].lsb_); return true; } |