1/* Test of test whether an UTF-32 string is entirely upper case.
2   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
3
4   This program is free software: you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation; either version 3 of the License, or
7   (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13
14   You should have received a copy of the GNU General Public License
15   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16
17/* Written by Bruno Haible <bruno@clisp.org>, 2009.  */
18
19#include <config.h>
20
21#include "unicase.h"
22
23#include "unistr.h"
24#include "macros.h"
25
26#define UNIT uint32_t
27#include "test-is-uppercase.h"
28#undef UNIT
29
30static void
31test_nonascii (int (*my_is) (const uint32_t *, size_t, const char *, bool *))
32{
33  /* Test cases from Unicode 5.1.0.  */
34  {
35    static const uint32_t input[] = { 0x24D7 };
36    bool result;
37
38    ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
39    ASSERT (result == false);
40  }
41  {
42    static const uint32_t input[] = { 0x24BD };
43    bool result;
44
45    ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
46    ASSERT (result == true);
47  }
48  {
49    static const uint32_t input[] = { 0x02B0 };
50    bool result;
51
52    ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
53    ASSERT (result == true);
54  }
55  {
56    static const uint32_t input[] = { 0x1D34 };
57    bool result;
58
59    ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
60    ASSERT (result == true);
61  }
62  {
63    static const uint32_t input[] = { 0x02BD };
64    bool result;
65
66    ASSERT (my_is (input, SIZEOF (input), NULL, &result) == 0);
67    ASSERT (result == true);
68  }
69}
70
71int
72main ()
73{
74  test_ascii (u32_is_uppercase);
75  test_nonascii (u32_is_uppercase);
76
77  return 0;
78}
79