1.cc: Use proper wchar_t type for the fill argument; minor formatting tweaks.

2004-08-21  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/22_locale/money_put/put/wchar_t/1.cc: Use proper
	wchar_t	type for the fill argument; minor formatting tweaks.
	* testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/4.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/5.cc: Likewise.
	* testsuite/22_locale/money_put/put/wchar_t/6.cc: Likewise.

From-SVN: r86362
This commit is contained in:
Paolo Carlini 2004-08-21 11:56:46 +00:00 committed by Paolo Carlini
parent 0fa1b65cad
commit 82507bc996
8 changed files with 66 additions and 49 deletions

View File

@ -1,3 +1,14 @@
2004-08-21 Paolo Carlini <pcarlini@suse.de>
* testsuite/22_locale/money_put/put/wchar_t/1.cc: Use proper
wchar_t type for the fill argument; minor formatting tweaks.
* testsuite/22_locale/money_put/put/wchar_t/12971.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/4.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/5.cc: Likewise.
* testsuite/22_locale/money_put/put/wchar_t/6.cc: Likewise.
2004-08-21 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_ios.tcc (basic_ios<>::copyfmt): Don't deal

View File

@ -49,16 +49,17 @@ void test01()
// cache the money_put facet
wostringstream oss;
oss.imbue(loc_de);
const money_put<wchar_t>& mon_put = use_facet<money_put<wchar_t> >(oss.getloc());
const money_put<wchar_t>& mon_put =
use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it01 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1);
iterator_type os_it01 = mon_put.put(oss.rdbuf(), true, oss, L' ', digits1);
wstring result1 = oss.str();
VERIFY( result1 == L"7.200.000.000,00 ");
VERIFY( result1 == L"7.200.000.000,00 " );
oss.str(empty);
iterator_type os_it02 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1);
iterator_type os_it02 = mon_put.put(oss.rdbuf(), false, oss, L' ', digits1);
wstring result2 = oss.str();
VERIFY( result2 == L"7.200.000.000,00 ");
VERIFY( result2 == L"7.200.000.000,00 " );
// intl and non-intl versions should be the same.
VERIFY( result1 == result2 );
@ -67,14 +68,14 @@ void test01()
oss.setf(ios_base::showbase);
oss.str(empty);
iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1);
iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, L' ', digits1);
wstring result3 = oss.str();
VERIFY( result3 == L"7.200.000.000,00 EUR ");
VERIFY( result3 == L"7.200.000.000,00 EUR " );
oss.str(empty);
iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1);
iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, L' ', digits1);
wstring result4 = oss.str();
VERIFY( result4 == L"7.200.000.000,00 \x20ac");
VERIFY( result4 == L"7.200.000.000,00 \x20ac" );
// intl and non-intl versions should be different.
VERIFY( result3 != result4 );
@ -87,16 +88,16 @@ void test01()
// test various fill strategies
oss.str(empty);
oss.width(20);
iterator_type os_it10 = mon_put.put(oss.rdbuf(), true, oss, '*', digits2);
iterator_type os_it10 = mon_put.put(oss.rdbuf(), true, oss, L'*', digits2);
wstring result10 = oss.str();
VERIFY( result10 == L"***************-,01*");
VERIFY( result10 == L"***************-,01*" );
oss.str(empty);
oss.width(20);
oss.setf(ios_base::internal);
iterator_type os_it11 = mon_put.put(oss.rdbuf(), true, oss, '*', digits2);
iterator_type os_it11 = mon_put.put(oss.rdbuf(), true, oss, L'*', digits2);
wstring result11 = oss.str();
VERIFY( result11 == L"-,01****************");
VERIFY( result11 == L"-,01****************" );
}
int main()

View File

@ -1,6 +1,6 @@
// 2003-11-09 Paolo Carlini <pcarlini@suse.de>
// Copyright (C) 2003 Free Software Foundation
// Copyright (C) 2003, 2004 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@ -36,7 +36,8 @@ void test01()
// cache the money_put facet
wostringstream oss;
const money_put<wchar_t>& mon_put = use_facet<money_put<wchar_t> >(oss.getloc());
const money_put<wchar_t>& mon_put =
use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it01 = mon_put.put(oss.rdbuf(), true, oss, L' ', amount);
wstring result = oss.str();

View File

@ -55,45 +55,48 @@ void test02()
// cache the money_put facet
wostringstream oss;
oss.imbue(loc_hk);
const money_put<wchar_t>& mon_put = use_facet<money_put<wchar_t> >(oss.getloc());
const money_put<wchar_t>& mon_put =
use_facet<money_put<wchar_t> >(oss.getloc());
// now try with showbase, to get currency symbol in format
oss.setf(ios_base::showbase);
// test sign of more than one digit, say hong kong.
oss.str(empty);
iterator_type os_it05 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1);
iterator_type os_it05 = mon_put.put(oss.rdbuf(), false, oss, L' ', digits1);
wstring result5 = oss.str();
VERIFY( result5 == L"HK$7,200,000,000.00");
VERIFY( result5 == L"HK$7,200,000,000.00" );
oss.str(empty);
iterator_type os_it06 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits2);
iterator_type os_it06 = mon_put.put(oss.rdbuf(), true, oss, L' ', digits2);
wstring result6 = oss.str();
VERIFY( result6 == L"(HKD 100,000,000,000.00)");
VERIFY( result6 == L"(HKD 100,000,000,000.00)" );
// test one-digit formats without zero padding
oss.imbue(loc_c);
oss.str(empty);
const money_put<wchar_t>& mon_put2 = use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it07 = mon_put2.put(oss.rdbuf(), true, oss, ' ', digits4);
const money_put<wchar_t>& mon_put2 =
use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it07 = mon_put2.put(oss.rdbuf(), true, oss, L' ', digits4);
wstring result7 = oss.str();
VERIFY( result7 == L"1");
VERIFY( result7 == L"1" );
// test one-digit formats with zero padding, zero frac widths
oss.imbue(loc_hk);
oss.str(empty);
const money_put<wchar_t>& mon_put3 = use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it08 = mon_put3.put(oss.rdbuf(), true, oss, ' ', digits4);
const money_put<wchar_t>& mon_put3 =
use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it08 = mon_put3.put(oss.rdbuf(), true, oss, L' ', digits4);
wstring result8 = oss.str();
VERIFY( result8 == L"(HKD .01)");
VERIFY( result8 == L"(HKD .01)" );
oss.unsetf(ios_base::showbase);
// test bunk input
oss.str(empty);
iterator_type os_it09 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits3);
iterator_type os_it09 = mon_put.put(oss.rdbuf(), true, oss, L' ', digits3);
wstring result9 = oss.str();
VERIFY( result9 == L"");
VERIFY( result9 == L"" );
}
int main()

View File

@ -46,16 +46,17 @@ void test03()
// cache the money_put facet
wostringstream oss;
oss.imbue(loc_de);
const money_put<wchar_t>& mon_put = use_facet<money_put<wchar_t> >(oss.getloc());
const money_put<wchar_t>& mon_put =
use_facet<money_put<wchar_t> >(oss.getloc());
iterator_type os_it01 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1);
iterator_type os_it01 = mon_put.put(oss.rdbuf(), true, oss, L' ', digits1);
wstring result1 = oss.str();
VERIFY( result1 == L"7.200.000.000,00 ");
VERIFY( result1 == L"7.200.000.000,00 " );
oss.str(empty);
iterator_type os_it02 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1);
iterator_type os_it02 = mon_put.put(oss.rdbuf(), false, oss, L' ', digits1);
wstring result2 = oss.str();
VERIFY( result2 == L"7.200.000.000,00 ");
VERIFY( result2 == L"7.200.000.000,00 " );
// intl and non-intl versions should be the same.
VERIFY( result1 == result2 );
@ -64,14 +65,14 @@ void test03()
oss.setf(ios_base::showbase);
oss.str(empty);
iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, ' ', digits1);
iterator_type os_it03 = mon_put.put(oss.rdbuf(), true, oss, L' ', digits1);
wstring result3 = oss.str();
VERIFY( result3 == L"7.200.000.000,00 EUR ");
VERIFY( result3 == L"7.200.000.000,00 EUR " );
oss.str(empty);
iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, ' ', digits1);
iterator_type os_it04 = mon_put.put(oss.rdbuf(), false, oss, L' ', digits1);
wstring result4 = oss.str();
VERIFY( result4 == L"7.200.000.000,00 \x20ac");
VERIFY( result4 == L"7.200.000.000,00 \x20ac" );
// intl and non-intl versions should be different.
VERIFY( result3 != result4 );

View File

@ -1,6 +1,6 @@
// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2002, 2003 Free Software Foundation
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@ -50,7 +50,7 @@ void test04()
// 01 wstring
res = x;
iter_type ret1 = mp.put(res.begin(), false, oss, ' ', str);
iter_type ret1 = mp.put(res.begin(), false, oss, L' ', str);
wstring sanity1(res.begin(), ret1);
VERIFY( err == goodbit );
VERIFY( res == L"1943xxxxxxxxxxxxx" );
@ -58,7 +58,7 @@ void test04()
// 02 long double
res = x;
iter_type ret2 = mp.put(res.begin(), false, oss, ' ', ld);
iter_type ret2 = mp.put(res.begin(), false, oss, L' ', ld);
wstring sanity2(res.begin(), ret2);
VERIFY( err == goodbit );
VERIFY( res == L"1943xxxxxxxxxxxxx" );

View File

@ -1,6 +1,6 @@
// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2002, 2003 Free Software Foundation
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@ -26,8 +26,8 @@
struct My_money_io : public std::moneypunct<wchar_t,false>
{
char_type do_decimal_point() const { return '.'; }
char_type do_thousands_sep() const { return ','; }
char_type do_decimal_point() const { return L'.'; }
char_type do_thousands_sep() const { return L','; }
std::string do_grouping() const { return "\003"; }
std::wstring do_negative_sign() const { return L"()"; }
@ -53,13 +53,13 @@ void test05()
bool intl = false;
wstring val(L"-123456");
const money_put<wchar_t,OutIt>& mp =
const money_put<wchar_t, OutIt>& mp =
use_facet<money_put<wchar_t, OutIt> >(loc);
wostringstream fmt;
fmt.imbue(loc);
OutIt out(fmt);
mp.put(out,intl,fmt,'*',val);
mp.put(out, intl, fmt, L'*', val);
VERIFY( fmt.str() == L"*(1,234.56)" );
}

View File

@ -1,6 +1,6 @@
// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2002, 2003 Free Software Foundation
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@ -26,7 +26,7 @@
struct My_money_io_2 : public std::moneypunct<wchar_t,false>
{
char_type do_thousands_sep() const { return ','; }
char_type do_thousands_sep() const { return L','; }
std::string do_grouping() const { return "\001"; }
};
@ -42,13 +42,13 @@ void test06()
bool intl = false;
long double val = 1.0e50L;
const money_put<wchar_t,OutIt>& mp =
const money_put<wchar_t, OutIt>& mp =
use_facet<money_put<wchar_t, OutIt> >(loc);
wostringstream fmt;
fmt.imbue(loc);
OutIt out(fmt);
mp.put(out,intl,fmt,'*',val);
mp.put(out, intl, fmt, L'*', val);
VERIFY( fmt.good() );
}