X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Ftestsuite%2F26_numerics%2Fcomplex_inserters_extractors.cc;fp=libstdc%2B%2B-v3%2Ftestsuite%2F26_numerics%2Fcomplex_inserters_extractors.cc;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=d304aa47b38905ac45b4aa5ccc5026d6789fd302;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc b/libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc deleted file mode 100644 index d304aa47..00000000 --- a/libstdc++-v3/testsuite/26_numerics/complex_inserters_extractors.cc +++ /dev/null @@ -1,149 +0,0 @@ -// 2000-02-10 -// Petter Urkedal - -// Copyright (C) 2000 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 -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 2, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License along -// with this library; see the file COPYING. If not, write to the Free -// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -// USA. - - -#include -#include -#include -#include -#include -#include - -template -inline bool flteq(R x, R y) -{ - if (x == R(0)) return y == R(0); - else return std::fabs(x-y) < 1e-6*std::fabs(x); -} - -template -int -test_good(std::string str, R x, R y) -{ - bool test = true; - std::complex z; - char ch; - std::istringstream iss(str); - iss >> z >> ch; - VERIFY( iss.good() ); - VERIFY( flteq(z.real(), x) ); - VERIFY( flteq(z.imag(), y) ); - VERIFY( ch == '#' ); - -#ifdef DEBUG_ASSERT - assert(test); -#endif - return 0; -} - -template -int -test_fail(std::string str) -{ - std::complex z; - std::istringstream iss(str); - iss >> z; -#ifdef DEBUG_ASSERT - assert(iss.fail() && !iss.bad()); -#endif - return 0; -} - -template -int -testall() -{ - test_good("(-1.1,3.7)#", -1.1, 3.7); - test_good("( .7e6 , \n-3.1)#", .7e6, -3.1); - test_good("(\t0,-1)#", 0.0, -1.0); - test_good("(-3.14)#", -3.14, 0.0); - test_good("-.1#", -.1, 0.0); - test_good(" ( -2.7e3 )#", -2.7e3, 0.0); - test_good(" -.1#", -.1, 0.0); - test_fail("(a,1)"); - test_fail("(,1)"); - test_fail("(1,a)"); - test_fail("(1, )"); - test_fail("|1,1)"); - test_fail("(1|1)"); - test_fail("(1,1|"); - return 0; -} - -// libstdc++/2970 -void test01() -{ - using namespace std; - bool test = true; - - complex cf01(-1.1, -333.2); - stringstream ss; - ss << cf01; - string str = ss.str(); - VERIFY( str == "(-1.1,-333.2)" ); -} - -// libstdc++/2985 -struct gnu_char_traits : public std::char_traits -{ }; - -typedef std::basic_ostringstream gnu_sstream; -template class std::basic_string >; - -void test02() -{ - bool test = true; - - // Construct locale with specialized facets. - typedef gnu_sstream::__numput_type numput_type; - typedef gnu_sstream::__numget_type numget_type; - std::locale loc_c = std::locale::classic(); - std::locale loc_1(loc_c, new numput_type); - std::locale loc_2(loc_1, new numget_type); - VERIFY( std::has_facet(loc_2) ); - VERIFY( std::has_facet(loc_2) ); - - gnu_sstream sstr; - std::basic_ios* pios = &sstr; - sstr.imbue(loc_2); - - - std::complex x(3, 4); - sstr << x; - VERIFY( sstr.str() == "(3,4)" ); -} - -int -main() -{ - testall(); - testall(); - testall(); - - test01(); - test02(); - - return 0; -} - - - -