Home | History | Annotate | Download | only in locale.ctype.byname
      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 #include <locale>
     17 #include <cassert>
     18 
     19 #include "platform_support.h" // locale name macros
     20 
     21 int main()
     22 {
     23     {
     24         std::locale l(LOCALE_en_US_UTF_8);
     25         {
     26             typedef std::ctype<char> F;
     27             const F& f = std::use_facet<F>(l);
     28 
     29             assert(f.tolower(' ') == ' ');
     30             assert(f.tolower('A') == 'a');
     31             assert(f.tolower('\x07') == '\x07');
     32             assert(f.tolower('.') == '.');
     33             assert(f.tolower('a') == 'a');
     34             assert(f.tolower('1') == '1');
     35             assert(f.tolower('\xDA') == '\xDA');
     36             assert(f.tolower('\xFA') == '\xFA');
     37         }
     38     }
     39     {
     40         std::locale l("C");
     41         {
     42             typedef std::ctype<char> F;
     43             const F& f = std::use_facet<F>(l);
     44 
     45             assert(f.tolower(' ') == ' ');
     46             assert(f.tolower('A') == 'a');
     47             assert(f.tolower('\x07') == '\x07');
     48             assert(f.tolower('.') == '.');
     49             assert(f.tolower('a') == 'a');
     50             assert(f.tolower('1') == '1');
     51             assert(f.tolower('\xDA') == '\xDA');
     52             assert(f.tolower('\xFA') == '\xFA');
     53         }
     54     }
     55     {
     56         std::locale l(LOCALE_en_US_UTF_8);
     57         {
     58             typedef std::ctype<wchar_t> F;
     59             const F& f = std::use_facet<F>(l);
     60 
     61             assert(f.tolower(L' ') == L' ');
     62             assert(f.tolower(L'A') == L'a');
     63             assert(f.tolower(L'\x07') == L'\x07');
     64             assert(f.tolower(L'.') == L'.');
     65             assert(f.tolower(L'a') == L'a');
     66             assert(f.tolower(L'1') == L'1');
     67             assert(f.tolower(L'\xDA') == L'\xFA');
     68             assert(f.tolower(L'\xFA') == L'\xFA');
     69         }
     70     }
     71     {
     72         std::locale l("C");
     73         {
     74             typedef std::ctype<wchar_t> F;
     75             const F& f = std::use_facet<F>(l);
     76 
     77             assert(f.tolower(L' ') == L' ');
     78             assert(f.tolower(L'A') == L'a');
     79             assert(f.tolower(L'\x07') == L'\x07');
     80             assert(f.tolower(L'.') == L'.');
     81             assert(f.tolower(L'a') == L'a');
     82             assert(f.tolower(L'1') == L'1');
     83             assert(f.tolower(L'\xDA') == L'\xDA');
     84             assert(f.tolower(L'\xFA') == L'\xFA');
     85         }
     86     }
     87 }
     88