130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun/* 230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * Copyright 2011 Google Inc. All Rights Reserved. 330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * 430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * Licensed under the Apache License, Version 2.0 (the "License"); 530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * you may not use this file except in compliance with the License. 630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * You may obtain a copy of the License at 730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * 830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * http://www.apache.org/licenses/LICENSE-2.0 930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * 1030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * Unless required by applicable law or agreed to in writing, software 1130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * distributed under the License is distributed on an "AS IS" BASIS, 1230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * See the License for the specific language governing permissions and 1430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * limitations under the License. 1530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun */ 1630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 1730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#include "sfntly/tag.cc" 1830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#include "test/test_data.h" 1930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 2030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunnamespace sfntly { 2130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 2230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun// If the TTF file used in test changed, the verify*.cc in test need to be 2330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun// changed also. 2430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun// TODO(arthurhsu): Refactor this into a test class and have all const inside. 2530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun// This way we can test multiple fonts using same set of 2630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun// code. 2730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 2830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst char* SAMPLE_TTF_FILE = "Tuffy.ttf"; 2930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst char* SAMPLE_BITMAP_FONT = "AnonymousPro-Regular.ttf"; 3030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 3130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_TTF_SIZE = 183936; 3230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_TTF_TABLES = 17; 3330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_TTF_KNOWN_TAGS = 16; 3430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_BITMAP_KNOWN_TAGS = 20; 3530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_TTF_FEAT = 3; 3630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_TTF_HEAD = 6; 3730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst size_t SAMPLE_TTF_POST = 14; 3830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 3930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst int32_t TTF_KNOWN_TAGS[] = { 4030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::OS_2, Tag::cmap, Tag::cvt, Tag::feat, Tag::gasp, 4130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::glyf, Tag::head, Tag::hhea, Tag::hmtx, Tag::kern, 4230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::loca, Tag::maxp, Tag::morx, Tag::name, Tag::post, 4330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::prop }; 4430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 4530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst int32_t BITMAP_KNOWN_TAGS[] = { 4630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::EBDT, Tag::EBLC, Tag::EBSC, Tag::LTSH, Tag::OS_2, 4730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::VDMX, Tag::cmap, Tag::cvt, Tag::fpgm, Tag::gasp, 4830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::glyf, Tag::hdmx, Tag::head, Tag::hhea, Tag::hmtx, 4930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun Tag::loca, Tag::maxp, Tag::name, Tag::post, Tag::prep }; 5030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 5130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst int64_t TTF_CHECKSUM[] = { 5230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0xD463FC48, 0x252028D1, 0x0065078A, 0xC01407B5, 0xFFFF0003, 5330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0x9544342B, 0xFC8F16AD, 0x0EC30C7A, 0xA029CD5D, 0x32513087, 5430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0x05C323B0, 0x06320195, 0x3B67E701, 0xE7DB08F3, 0xD46E5E89, 5530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0xE6EB4A27 }; 5630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 5730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst int64_t TTF_OFFSET[] = { 5830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0x00000198, 0x00001964, 0x000025B0, 0x0002CA74, 0x0002C854, 5930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0x00003D34, 0x0000011C, 0x00000154, 0x000001F0, 0x000245D8, 6030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0x000025B8, 0x00000178, 0x0002CAB4, 0x00024860, 0x00028854, 6130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0x0002C85C }; 6230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 6330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst int32_t TTF_LENGTH[] = { 6430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 86, 3146, 8, 64, 8, 6530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 133284, 54, 36, 6002, 648, 6630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 6012, 32, 944, 16371, 16383, 6730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 536 }; 6830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 6930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurunconst unsigned char TTF_FEAT_DATA[] = { 7030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0, 0, 0, 0x30, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0x34, 7230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0, 0, 1, 1, 0, 0xB, 0, 2, 0, 0, 0, 0x38, 0xC0, 0, 1, 2, 7330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 0, 0, 1, 3, 0, 2, 1, 4, 0, 0, 1, 5, 0, 2, 1, 6 }; 7430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 7530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun} // namespace sfntly 76