Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / libc++ / trunk / test / localization / locale.categories / category.ctype / locale.ctype.byname / tolower_1.pass.cpp
1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. 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 // XFAIL: with_system_lib=x86_64-apple-darwin11
17 // XFAIL: with_system_lib=x86_64-apple-darwin12
18 // XFAIL: linux
19
20 #include <locale>
21 #include <cassert>
22
23 #include "platform_support.h" // locale name macros
24
25 int main()
26 {
27     {
28         std::locale l(LOCALE_en_US_UTF_8);
29         {
30             typedef std::ctype<char> F;
31             const F& f = std::use_facet<F>(l);
32
33             assert(f.tolower(' ') == ' ');
34             assert(f.tolower('A') == 'a');
35             assert(f.tolower('\x07') == '\x07');
36             assert(f.tolower('.') == '.');
37             assert(f.tolower('a') == 'a');
38             assert(f.tolower('1') == '1');
39             assert(f.tolower('\xDA') == '\xFA');
40             assert(f.tolower('\xFA') == '\xFA');
41         }
42     }
43     {
44         std::locale l("C");
45         {
46             typedef std::ctype<char> F;
47             const F& f = std::use_facet<F>(l);
48
49             assert(f.tolower(' ') == ' ');
50             assert(f.tolower('A') == 'a');
51             assert(f.tolower('\x07') == '\x07');
52             assert(f.tolower('.') == '.');
53             assert(f.tolower('a') == 'a');
54             assert(f.tolower('1') == '1');
55             assert(f.tolower('\xDA') == '\xDA');
56             assert(f.tolower('\xFA') == '\xFA');
57         }
58     }
59     {
60         std::locale l(LOCALE_en_US_UTF_8);
61         {
62             typedef std::ctype<wchar_t> F;
63             const F& f = std::use_facet<F>(l);
64
65             assert(f.tolower(L' ') == L' ');
66             assert(f.tolower(L'A') == L'a');
67             assert(f.tolower(L'\x07') == L'\x07');
68             assert(f.tolower(L'.') == L'.');
69             assert(f.tolower(L'a') == L'a');
70             assert(f.tolower(L'1') == L'1');
71             assert(f.tolower(L'\xDA') == L'\xFA');
72             assert(f.tolower(L'\xFA') == L'\xFA');
73         }
74     }
75     {
76         std::locale l("C");
77         {
78             typedef std::ctype<wchar_t> F;
79             const F& f = std::use_facet<F>(l);
80
81             assert(f.tolower(L' ') == L' ');
82             assert(f.tolower(L'A') == L'a');
83             assert(f.tolower(L'\x07') == L'\x07');
84             assert(f.tolower(L'.') == L'.');
85             assert(f.tolower(L'a') == L'a');
86             assert(f.tolower(L'1') == L'1');
87             assert(f.tolower(L'\xDA') == L'\xDA');
88             assert(f.tolower(L'\xFA') == L'\xFA');
89         }
90     }
91 }