]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 27_io / basic_ostream / inserters_arithmetic / char / 3.cc
CommitLineData
a2febbfb 1// 1999-11-15 Kevin Ediger <kediger@licor.com>
2// test the floating point inserters (facet num_put)
b9e8095b 3
fbd26352 4// Copyright (C) 1999-2019 Free Software Foundation, Inc.
b9e8095b 5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
6bc9506f 9// Free Software Foundation; either version 3, or (at your option)
b9e8095b 10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
6bc9506f 18// with this library; see the file COPYING3. If not see
19// <http://www.gnu.org/licenses/>.
b9e8095b 20
b9e8095b 21#include <sstream>
a2febbfb 22#include <limits>
0194306c 23#include <testsuite_hooks.h>
b9e8095b 24
a2febbfb 25template<typename T>
310594c1 26void
a2febbfb 27test03_check(T n)
b9e8095b 28{
bb135391 29 using namespace std;
bb135391 30
a2febbfb 31 stringbuf strbuf;
32 ostream o(&strbuf);
33 const char *expect;
b9e8095b 34
a2febbfb 35 if (numeric_limits<T>::digits + 1 == 16)
36 expect = "177777 ffff";
37 else if (numeric_limits<T>::digits + 1 == 32)
38 expect = "37777777777 ffffffff";
39 else if (numeric_limits<T>::digits + 1 == 64)
40 expect = "1777777777777777777777 ffffffffffffffff";
41 else
42 expect = "wow, you've got some big numbers here";
b9e8095b 43
a2febbfb 44 o << oct << n << ' ' << hex << n;
45 VERIFY ( strbuf.str() == expect );
b9e8095b 46}
47
a2febbfb 48void
49test03()
b9e8095b 50{
a2febbfb 51 short s = -1;
52 int i = -1;
53 long l = -1;
b9e8095b 54
a2febbfb 55 test03_check (s);
56 test03_check (i);
57 test03_check (l);
b9e8095b 58}
c9cb0c6c 59
a2febbfb 60int
61main()
62{
63 test03();
64 return 0;
65}