tolower_1.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <locale>
11
12// template <class charT> class ctype_byname;
13
14// charT tolower(charT) const;
15
16#include <locale>
17#include <cassert>
18
19int main()
20{
21    {
22        std::locale l("en_US");
23        {
24            typedef std::ctype<char> F;
25            const F& f = std::use_facet<F>(l);
26
27            assert(f.tolower(' ') == ' ');
28            assert(f.tolower('A') == 'a');
29            assert(f.tolower('\x07') == '\x07');
30            assert(f.tolower('.') == '.');
31            assert(f.tolower('a') == 'a');
32            assert(f.tolower('1') == '1');
33            assert(f.tolower('\xDA') == '\xDA');
34            assert(f.tolower('\xFA') == '\xFA');
35        }
36    }
37    {
38        std::locale l("C");
39        {
40            typedef std::ctype<char> F;
41            const F& f = std::use_facet<F>(l);
42
43            assert(f.tolower(' ') == ' ');
44            assert(f.tolower('A') == 'a');
45            assert(f.tolower('\x07') == '\x07');
46            assert(f.tolower('.') == '.');
47            assert(f.tolower('a') == 'a');
48            assert(f.tolower('1') == '1');
49            assert(f.tolower('\xDA') == '\xDA');
50            assert(f.tolower('\xFA') == '\xFA');
51        }
52    }
53    {
54        std::locale l("en_US");
55        {
56            typedef std::ctype<wchar_t> F;
57            const F& f = std::use_facet<F>(l);
58
59            assert(f.tolower(L' ') == L' ');
60            assert(f.tolower(L'A') == L'a');
61            assert(f.tolower(L'\x07') == L'\x07');
62            assert(f.tolower(L'.') == L'.');
63            assert(f.tolower(L'a') == L'a');
64            assert(f.tolower(L'1') == L'1');
65            assert(f.tolower(L'\xDA') == L'\xFA');
66            assert(f.tolower(L'\xFA') == L'\xFA');
67        }
68    }
69    {
70        std::locale l("C");
71        {
72            typedef std::ctype<wchar_t> F;
73            const F& f = std::use_facet<F>(l);
74
75            assert(f.tolower(L' ') == L' ');
76            assert(f.tolower(L'A') == L'a');
77            assert(f.tolower(L'\x07') == L'\x07');
78            assert(f.tolower(L'.') == L'.');
79            assert(f.tolower(L'a') == L'a');
80            assert(f.tolower(L'1') == L'1');
81            assert(f.tolower(L'\xDA') == L'\xDA');
82            assert(f.tolower(L'\xFA') == L'\xFA');
83        }
84    }
85}
86