1/* Pango
2 * test-coverage.c: Test coverage
3 *
4 * Copyright (C) 2019 Red Hat, Inc.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
22#include <pango/pango.h>
23
24static void
25test_coverage_basic (void)
26{
27 PangoCoverage *coverage;
28 int i;
29
30 coverage = pango_coverage_new ();
31
32 for (i = 0; i < 100; i++)
33 g_assert_cmpint (pango_coverage_get (coverage, i), ==, PANGO_COVERAGE_NONE);
34
35 for (i = 0; i < 100; i++)
36 pango_coverage_set (coverage, index_: i, level: PANGO_COVERAGE_EXACT);
37
38 for (i = 0; i < 100; i++)
39 g_assert_cmpint (pango_coverage_get (coverage, i), ==, PANGO_COVERAGE_EXACT);
40
41 for (i = 0; i < 100; i++)
42 pango_coverage_set (coverage, index_: i, level: PANGO_COVERAGE_NONE);
43
44 for (i = 0; i < 100; i++)
45 g_assert_cmpint (pango_coverage_get (coverage, i), ==, PANGO_COVERAGE_NONE);
46
47 g_object_unref (object: coverage);
48}
49
50static void
51test_coverage_copy (void)
52{
53 PangoCoverage *coverage;
54 PangoCoverage *coverage2;
55 int i;
56
57 coverage = pango_coverage_new ();
58
59 for (i = 0; i < 100; i++)
60 pango_coverage_set (coverage, index_: i, level: PANGO_COVERAGE_EXACT);
61
62 coverage2 = pango_coverage_copy (coverage);
63
64 for (i = 0; i < 50; i++)
65 pango_coverage_set (coverage, index_: i, level: PANGO_COVERAGE_NONE);
66
67 for (i = 0; i < 100; i++)
68 g_assert_cmpint (pango_coverage_get (coverage2, i), ==, PANGO_COVERAGE_EXACT);
69
70 g_object_unref (object: coverage);
71 g_object_unref (object: coverage2);
72}
73
74int
75main (int argc, char *argv[])
76{
77 g_test_init (argc: &argc, argv: &argv, NULL);
78
79 g_test_add_func (testpath: "/coverage/basic", test_func: test_coverage_basic);
80 g_test_add_func (testpath: "/coverage/copy", test_func: test_coverage_copy);
81
82 return g_test_run ();
83}
84

source code of gtk/subprojects/pango/tests/test-coverage.c