brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · bed585f Raw
105 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9// UNSUPPORTED: no-localization10 11// <complex>12 13// template<class T, class charT, class traits>14//   basic_istream<charT, traits>&15//   operator>>(basic_istream<charT, traits>& is, complex<T>& x);16 17#include <complex>18#include <sstream>19#include <cassert>20 21#include "test_macros.h"22 23int main(int, char**)24{25    {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());31    }32    {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());38    }39    {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());45    }46    {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());52    }53    {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());59    }60    {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());66    }67    {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());73    }74    {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());80    }81    {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());87    }88    {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());94    }95    {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());101    }102 103  return 0;104}105