xref: /minix3/external/bsd/libc++/dist/libcxx/test/std/re/re.traits/value.pass.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc //===----------------------------------------------------------------------===//
2*0a6a1f1dSLionel Sambuc //
3*0a6a1f1dSLionel Sambuc //                     The LLVM Compiler Infrastructure
4*0a6a1f1dSLionel Sambuc //
5*0a6a1f1dSLionel Sambuc // This file is dual licensed under the MIT and the University of Illinois Open
6*0a6a1f1dSLionel Sambuc // Source Licenses. See LICENSE.TXT for details.
7*0a6a1f1dSLionel Sambuc //
8*0a6a1f1dSLionel Sambuc //===----------------------------------------------------------------------===//
9*0a6a1f1dSLionel Sambuc 
10*0a6a1f1dSLionel Sambuc // <regex>
11*0a6a1f1dSLionel Sambuc 
12*0a6a1f1dSLionel Sambuc // template <class charT> struct regex_traits;
13*0a6a1f1dSLionel Sambuc 
14*0a6a1f1dSLionel Sambuc // int value(charT ch, int radix) const;
15*0a6a1f1dSLionel Sambuc 
16*0a6a1f1dSLionel Sambuc #include <regex>
17*0a6a1f1dSLionel Sambuc #include <cassert>
18*0a6a1f1dSLionel Sambuc 
main()19*0a6a1f1dSLionel Sambuc int main()
20*0a6a1f1dSLionel Sambuc {
21*0a6a1f1dSLionel Sambuc     {
22*0a6a1f1dSLionel Sambuc         std::regex_traits<char> t;
23*0a6a1f1dSLionel Sambuc 
24*0a6a1f1dSLionel Sambuc         for (char c = 0; c < '0'; ++c)
25*0a6a1f1dSLionel Sambuc         {
26*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
27*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
28*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
29*0a6a1f1dSLionel Sambuc         }
30*0a6a1f1dSLionel Sambuc         for (char c = '0'; c < '8'; ++c)
31*0a6a1f1dSLionel Sambuc         {
32*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == c - '0');
33*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == c - '0');
34*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - '0');
35*0a6a1f1dSLionel Sambuc         }
36*0a6a1f1dSLionel Sambuc         for (char c = '8'; c < ':'; ++c)
37*0a6a1f1dSLionel Sambuc         {
38*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
39*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == c - '0');
40*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - '0');
41*0a6a1f1dSLionel Sambuc         }
42*0a6a1f1dSLionel Sambuc         for (char c = ':'; c < 'A'; ++c)
43*0a6a1f1dSLionel Sambuc         {
44*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
45*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
46*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
47*0a6a1f1dSLionel Sambuc         }
48*0a6a1f1dSLionel Sambuc         for (char c = 'A'; c < 'G'; ++c)
49*0a6a1f1dSLionel Sambuc         {
50*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
51*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
52*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - 'A' +10);
53*0a6a1f1dSLionel Sambuc         }
54*0a6a1f1dSLionel Sambuc         for (char c = 'G'; c < 'a'; ++c)
55*0a6a1f1dSLionel Sambuc         {
56*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
57*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
58*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
59*0a6a1f1dSLionel Sambuc         }
60*0a6a1f1dSLionel Sambuc         for (char c = 'a'; c < 'g'; ++c)
61*0a6a1f1dSLionel Sambuc         {
62*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
63*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
64*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - 'a' +10);
65*0a6a1f1dSLionel Sambuc         }
66*0a6a1f1dSLionel Sambuc         for (int c = 'g'; c < 256; ++c)
67*0a6a1f1dSLionel Sambuc         {
68*0a6a1f1dSLionel Sambuc             assert(t.value(char(c), 8) == -1);
69*0a6a1f1dSLionel Sambuc             assert(t.value(char(c), 10) == -1);
70*0a6a1f1dSLionel Sambuc             assert(t.value(char(c), 16) == -1);
71*0a6a1f1dSLionel Sambuc         }
72*0a6a1f1dSLionel Sambuc     }
73*0a6a1f1dSLionel Sambuc     {
74*0a6a1f1dSLionel Sambuc         std::regex_traits<wchar_t> t;
75*0a6a1f1dSLionel Sambuc 
76*0a6a1f1dSLionel Sambuc         for (wchar_t c = 0; c < '0'; ++c)
77*0a6a1f1dSLionel Sambuc         {
78*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
79*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
80*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
81*0a6a1f1dSLionel Sambuc         }
82*0a6a1f1dSLionel Sambuc         for (wchar_t c = '0'; c < '8'; ++c)
83*0a6a1f1dSLionel Sambuc         {
84*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == c - '0');
85*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == c - '0');
86*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - '0');
87*0a6a1f1dSLionel Sambuc         }
88*0a6a1f1dSLionel Sambuc         for (wchar_t c = '8'; c < ':'; ++c)
89*0a6a1f1dSLionel Sambuc         {
90*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
91*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == c - '0');
92*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - '0');
93*0a6a1f1dSLionel Sambuc         }
94*0a6a1f1dSLionel Sambuc         for (wchar_t c = ':'; c < 'A'; ++c)
95*0a6a1f1dSLionel Sambuc         {
96*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
97*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
98*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
99*0a6a1f1dSLionel Sambuc         }
100*0a6a1f1dSLionel Sambuc         for (wchar_t c = 'A'; c < 'G'; ++c)
101*0a6a1f1dSLionel Sambuc         {
102*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
103*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
104*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - 'A' +10);
105*0a6a1f1dSLionel Sambuc         }
106*0a6a1f1dSLionel Sambuc         for (wchar_t c = 'G'; c < 'a'; ++c)
107*0a6a1f1dSLionel Sambuc         {
108*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
109*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
110*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
111*0a6a1f1dSLionel Sambuc         }
112*0a6a1f1dSLionel Sambuc         for (wchar_t c = 'a'; c < 'g'; ++c)
113*0a6a1f1dSLionel Sambuc         {
114*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
115*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
116*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == c - 'a' +10);
117*0a6a1f1dSLionel Sambuc         }
118*0a6a1f1dSLionel Sambuc         for (int c = 'g'; c < 0xFFFF; ++c)
119*0a6a1f1dSLionel Sambuc         {
120*0a6a1f1dSLionel Sambuc             assert(t.value(c, 8) == -1);
121*0a6a1f1dSLionel Sambuc             assert(t.value(c, 10) == -1);
122*0a6a1f1dSLionel Sambuc             assert(t.value(c, 16) == -1);
123*0a6a1f1dSLionel Sambuc         }
124*0a6a1f1dSLionel Sambuc     }
125*0a6a1f1dSLionel Sambuc }
126