Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / libstdc++-v3 / testsuite / 22_locale / num_get / get / wchar_t / 5.cc
blobb9e39aac4f7c3431a671a9132a26b48c8d5138a5
1 // { dg-require-namedlocale "" }
3 // 2001-11-21 Benjamin Kosnik <bkoz@redhat.com>
5 // Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation
6 //
7 // This file is part of the GNU ISO C++ Library. This library is free
8 // software; you can redistribute it and/or modify it under the
9 // terms of the GNU General Public License as published by the
10 // Free Software Foundation; either version 2, or (at your option)
11 // any later version.
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU General Public License for more details.
18 // You should have received a copy of the GNU General Public License along
19 // with this library; see the file COPYING. If not, write to the Free
20 // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21 // USA.
23 // 22.2.2.1.1 num_get members
25 #include <locale>
26 #include <sstream>
27 #include <testsuite_hooks.h>
29 // Testing the correct parsing of grouped hexadecimals and octals.
30 void test05()
32 using namespace std;
34 bool test __attribute__((unused)) = true;
36 unsigned long ul;
38 wistringstream iss;
40 // A locale that expects grouping
41 locale loc_de = locale("de_DE");
42 iss.imbue(loc_de);
44 const num_get<wchar_t>& ng = use_facet<num_get<wchar_t> >(iss.getloc());
45 const ios_base::iostate goodbit = ios_base::goodbit;
46 ios_base::iostate err = ios_base::goodbit;
48 iss.setf(ios::hex, ios::basefield);
49 iss.str(L"0xbf.fff.74c ");
50 err = goodbit;
51 ng.get(iss.rdbuf(), 0, iss, err, ul);
52 VERIFY( err == goodbit );
53 VERIFY( ul == 0xbffff74c );
55 iss.str(L"0Xf.fff ");
56 err = goodbit;
57 ng.get(iss.rdbuf(), 0, iss, err, ul);
58 VERIFY( err == goodbit );
59 VERIFY( ul == 0xffff );
61 iss.str(L"ffe ");
62 err = goodbit;
63 ng.get(iss.rdbuf(), 0, iss, err, ul);
64 VERIFY( err == goodbit );
65 VERIFY( ul == 0xffe );
67 iss.setf(ios::oct, ios::basefield);
68 iss.str(L"07.654.321 ");
69 err = goodbit;
70 ng.get(iss.rdbuf(), 0, iss, err, ul);
71 VERIFY( err == goodbit );
72 VERIFY( ul == 07654321 );
74 iss.str(L"07.777 ");
75 err = goodbit;
76 ng.get(iss.rdbuf(), 0, iss, err, ul);
77 VERIFY( err == goodbit );
78 VERIFY( ul == 07777 );
80 iss.str(L"776 ");
81 err = goodbit;
82 ng.get(iss.rdbuf(), 0, iss, err, ul);
83 VERIFY( err == goodbit );
84 VERIFY( ul == 0776 );
87 int main()
89 test05();
90 return 0;
94 // Kathleen Hannah, humanitarian, woman, art-thief