1 //===----------------------------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // UNSUPPORTED: no-localization
13 // template<class T, class charT, class traits>
14 // basic_istream<charT, traits>&
15 // operator>>(basic_istream<charT, traits>& is, complex<T>& x);
21 #include "test_macros.h"
26 std::istringstream
is("5");
27 std::complex<double> c
;
29 assert(c
== std::complex<double>(5, 0));
33 std::istringstream
is(" 5 ");
34 std::complex<double> c
;
36 assert(c
== std::complex<double>(5, 0));
40 std::istringstream
is(" 5, ");
41 std::complex<double> c
;
43 assert(c
== std::complex<double>(5, 0));
47 std::istringstream
is(" , 5, ");
48 std::complex<double> c
;
50 assert(c
== std::complex<double>(0, 0));
54 std::istringstream
is("5.5 ");
55 std::complex<double> c
;
57 assert(c
== std::complex<double>(5.5, 0));
61 std::istringstream
is(" ( 5.5 ) ");
62 std::complex<double> c
;
64 assert(c
== std::complex<double>(5.5, 0));
68 std::istringstream
is(" 5.5)");
69 std::complex<double> c
;
71 assert(c
== std::complex<double>(5.5, 0));
75 std::istringstream
is("(5.5 ");
76 std::complex<double> c
;
78 assert(c
== std::complex<double>(0, 0));
82 std::istringstream
is("(5.5,");
83 std::complex<double> c
;
85 assert(c
== std::complex<double>(0, 0));
89 std::istringstream
is("( -5.5 , -6.5 )");
90 std::complex<double> c
;
92 assert(c
== std::complex<double>(-5.5, -6.5));
96 std::istringstream
is("(-5.5,-6.5)");
97 std::complex<double> c
;
99 assert(c
== std::complex<double>(-5.5, -6.5));