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 #include "hb-ot-os2-unicode-ranges.hh"
29
30 static void
test(hb_codepoint_t cp,unsigned int bit)31 test (hb_codepoint_t cp, unsigned int bit)
32 {
33 if (OT::_hb_ot_os2_get_unicode_range_bit (cp) != bit)
34 {
35 fprintf (stderr, "got incorrect bit (%d) for cp 0x%X. Should have been %d.",
36 OT::_hb_ot_os2_get_unicode_range_bit (cp),
37 cp,
38 bit);
39 abort();
40 }
41 }
42
43 static void
test_get_unicode_range_bit()44 test_get_unicode_range_bit ()
45 {
46 test (0x0000, 0);
47 test (0x0042, 0);
48 test (0x007F, 0);
49 test (0x0080, 1);
50
51 test (0x30A0, 50);
52 test (0x30B1, 50);
53 test (0x30FF, 50);
54
55 test (0x10FFFD, 90);
56
57 test (0x30000, -1);
58 test (0x110000, -1);
59 }
60
61 int
main()62 main ()
63 {
64 test_get_unicode_range_bit ();
65 return 0;
66 }
67