blob: 3afc336268f762b4465bd10c3de819e0d37465f3 [file] [log] [blame]
Howard Hinnant3257c982010-06-17 00:34:59 +00001// -*- C++ -*-
Howard Hinnant0ce02242010-09-28 17:19:10 +00002//===----------------------------------------------------------------------===//
Howard Hinnant3257c982010-06-17 00:34:59 +00003//
4// The LLVM Compiler Infrastructure
5//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00006// This file is dual licensed under the MIT and the University of Illinois Open
7// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3257c982010-06-17 00:34:59 +00008//
9//===----------------------------------------------------------------------===//
10
11// <regex>
12
13// template <class charT> struct regex_traits;
14
15// charT translate_nocase(charT c) const;
16
17#include <regex>
18#include <cassert>
19
Marshall Clow83e2c4d2013-01-05 03:21:01 +000020#include "platform_support.h"
Howard Hinnantc0d0cba2011-10-03 15:23:59 +000021
Howard Hinnant3257c982010-06-17 00:34:59 +000022int main()
23{
24 {
25 std::regex_traits<char> t;
26 assert(t.translate_nocase(' ') == ' ');
27 assert(t.translate_nocase('A') == 'a');
28 assert(t.translate_nocase('\x07') == '\x07');
29 assert(t.translate_nocase('.') == '.');
30 assert(t.translate_nocase('a') == 'a');
31 assert(t.translate_nocase('1') == '1');
32 assert(t.translate_nocase('\xDA') == '\xDA');
33 assert(t.translate_nocase('\xFA') == '\xFA');
Howard Hinnantc0d0cba2011-10-03 15:23:59 +000034 t.imbue(std::locale(LOCALE_en_US_UTF_8));
Howard Hinnant3257c982010-06-17 00:34:59 +000035 assert(t.translate_nocase(' ') == ' ');
36 assert(t.translate_nocase('A') == 'a');
37 assert(t.translate_nocase('\x07') == '\x07');
38 assert(t.translate_nocase('.') == '.');
39 assert(t.translate_nocase('a') == 'a');
40 assert(t.translate_nocase('1') == '1');
41 assert(t.translate_nocase('\xDA') == '\xDA');
42 assert(t.translate_nocase('\xFA') == '\xFA');
43 }
44 {
45 std::regex_traits<wchar_t> t;
46 assert(t.translate_nocase(L' ') == L' ');
47 assert(t.translate_nocase(L'A') == L'a');
48 assert(t.translate_nocase(L'\x07') == L'\x07');
49 assert(t.translate_nocase(L'.') == L'.');
50 assert(t.translate_nocase(L'a') == L'a');
51 assert(t.translate_nocase(L'1') == L'1');
52 assert(t.translate_nocase(L'\xDA') == L'\xDA');
53 assert(t.translate_nocase(L'\xFA') == L'\xFA');
Howard Hinnantc0d0cba2011-10-03 15:23:59 +000054 t.imbue(std::locale(LOCALE_en_US_UTF_8));
Howard Hinnant3257c982010-06-17 00:34:59 +000055 assert(t.translate_nocase(L' ') == L' ');
56 assert(t.translate_nocase(L'A') == L'a');
57 assert(t.translate_nocase(L'\x07') == L'\x07');
58 assert(t.translate_nocase(L'.') == L'.');
59 assert(t.translate_nocase(L'a') == L'a');
60 assert(t.translate_nocase(L'1') == L'1');
61 assert(t.translate_nocase(L'\xDA') == L'\xFA');
62 assert(t.translate_nocase(L'\xFA') == L'\xFA');
63 }
64}