1 /*
2 * Copyright © 2018 Google, Inc.
3 *
4 * This is part of HarfBuzz, a text shaping library.
5 *
6 * Permission is hereby granted, without written agreement and without
7 * license or royalty fees, to use, copy, modify, and distribute this
8 * software and its documentation for any purpose, provided that the
9 * above copyright notice and the following two paragraphs appear in
10 * all copies of this software.
11 *
12 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
13 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
14 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
15 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
16 * DAMAGE.
17 *
18 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
19 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
21 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
23 *
24 * Google Author(s): Garret Rieger
25 */
26
27 #include "hb.hh"
28
29 #include "hb-ot-os2-unicode-ranges.hh"
30
31 static void
test(hb_codepoint_t cp,unsigned int bit)32 test (hb_codepoint_t cp, unsigned int bit)
33 {
34 if (OT::_hb_ot_os2_get_unicode_range_bit (cp) != bit)
35 {
36 fprintf (stderr, "got incorrect bit (%d) for cp 0x%X. Should have been %d.",
37 OT::_hb_ot_os2_get_unicode_range_bit (cp),
38 cp,
39 bit);
40 abort();
41 }
42 }
43
44 static void
test_get_unicode_range_bit()45 test_get_unicode_range_bit ()
46 {
47 test (0x0000, 0);
48 test (0x0042, 0);
49 test (0x007F, 0);
50 test (0x0080, 1);
51
52 test (0x30A0, 50);
53 test (0x30B1, 50);
54 test (0x30FF, 50);
55
56 test (0x10FFFD, 90);
57
58 test (0x30000, -1);
59 test (0x110000, -1);
60 }
61
62 int
main()63 main ()
64 {
65 test_get_unicode_range_bit ();
66 return 0;
67 }
68