summaryrefslogtreecommitdiff
path: root/test/verify_hmtx.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/verify_hmtx.cc')
-rw-r--r--test/verify_hmtx.cc202
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;
}