[X86] Add test case for #124871. NFC
[llvm-project.git] / libcxx / test / std / numerics / complex.number / complex.ops / stream_input.pass.cpp
blobbed585fc18a879bfd9cb2178d244a8923f3b480e
1 //===----------------------------------------------------------------------===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
9 // UNSUPPORTED: no-localization
11 // <complex>
13 // template<class T, class charT, class traits>
14 // basic_istream<charT, traits>&
15 // operator>>(basic_istream<charT, traits>& is, complex<T>& x);
17 #include <complex>
18 #include <sstream>
19 #include <cassert>
21 #include "test_macros.h"
23 int main(int, char**)
26 std::istringstream is("5");
27 std::complex<double> c;
28 is >> c;
29 assert(c == std::complex<double>(5, 0));
30 assert(is.eof());
33 std::istringstream is(" 5 ");
34 std::complex<double> c;
35 is >> c;
36 assert(c == std::complex<double>(5, 0));
37 assert(is.good());
40 std::istringstream is(" 5, ");
41 std::complex<double> c;
42 is >> c;
43 assert(c == std::complex<double>(5, 0));
44 assert(is.good());
47 std::istringstream is(" , 5, ");
48 std::complex<double> c;
49 is >> c;
50 assert(c == std::complex<double>(0, 0));
51 assert(is.fail());
54 std::istringstream is("5.5 ");
55 std::complex<double> c;
56 is >> c;
57 assert(c == std::complex<double>(5.5, 0));
58 assert(is.good());
61 std::istringstream is(" ( 5.5 ) ");
62 std::complex<double> c;
63 is >> c;
64 assert(c == std::complex<double>(5.5, 0));
65 assert(is.good());
68 std::istringstream is(" 5.5)");
69 std::complex<double> c;
70 is >> c;
71 assert(c == std::complex<double>(5.5, 0));
72 assert(is.good());
75 std::istringstream is("(5.5 ");
76 std::complex<double> c;
77 is >> c;
78 assert(c == std::complex<double>(0, 0));
79 assert(is.fail());
82 std::istringstream is("(5.5,");
83 std::complex<double> c;
84 is >> c;
85 assert(c == std::complex<double>(0, 0));
86 assert(is.fail());
89 std::istringstream is("( -5.5 , -6.5 )");
90 std::complex<double> c;
91 is >> c;
92 assert(c == std::complex<double>(-5.5, -6.5));
93 assert(!is.eof());
96 std::istringstream is("(-5.5,-6.5)");
97 std::complex<double> c;
98 is >> c;
99 assert(c == std::complex<double>(-5.5, -6.5));
100 assert(!is.eof());
103 return 0;