summaryrefslogtreecommitdiff
path: root/libcxx/test/numerics/complex.number/complex.transcendentals/exp.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/numerics/complex.number/complex.transcendentals/exp.pass.cpp')
-rw-r--r--libcxx/test/numerics/complex.number/complex.transcendentals/exp.pass.cpp114
1 files changed, 0 insertions, 114 deletions
diff --git a/libcxx/test/numerics/complex.number/complex.transcendentals/exp.pass.cpp b/libcxx/test/numerics/complex.number/complex.transcendentals/exp.pass.cpp
deleted file mode 100644
index e8b507572f1b..000000000000
--- a/libcxx/test/numerics/complex.number/complex.transcendentals/exp.pass.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <complex>
-
-// template<class T>
-// complex<T>
-// exp(const complex<T>& x);
-
-#include <complex>
-#include <cassert>
-
-#include "../cases.h"
-
-template <class T>
-void
-test(const std::complex<T>& c, std::complex<T> x)
-{
- assert(exp(c) == x);
-}
-
-template <class T>
-void
-test()
-{
- test(std::complex<T>(0, 0), std::complex<T>(1, 0));
-}
-
-void test_edges()
-{
- const unsigned N = sizeof(x) / sizeof(x[0]);
- for (unsigned i = 0; i < N; ++i)
- {
- std::complex<double> r = exp(x[i]);
- if (x[i].real() == 0 && x[i].imag() == 0)
- {
- assert(r.real() == 1.0);
- assert(r.imag() == 0);
- assert(std::signbit(x[i].imag()) == std::signbit(r.imag()));
- }
- else if (std::isfinite(x[i].real()) && std::isinf(x[i].imag()))
- {
- assert(std::isnan(r.real()));
- assert(std::isnan(r.imag()));
- }
- else if (std::isfinite(x[i].real()) && std::isnan(x[i].imag()))
- {
- assert(std::isnan(r.real()));
- assert(std::isnan(r.imag()));
- }
- else if (std::isinf(x[i].real()) && x[i].real() > 0 && x[i].imag() == 0)
- {
- assert(std::isinf(r.real()));
- assert(r.real() > 0);
- assert(r.imag() == 0);
- assert(std::signbit(x[i].imag()) == std::signbit(r.imag()));
- }
- else if (std::isinf(x[i].real()) && x[i].real() < 0 && std::isinf(x[i].imag()))
- {
- assert(r.real() == 0);
- assert(r.imag() == 0);
- }
- else if (std::isinf(x[i].real()) && x[i].real() > 0 && std::isinf(x[i].imag()))
- {
- assert(std::isinf(r.real()));
- assert(std::isnan(r.imag()));
- }
- else if (std::isinf(x[i].real()) && x[i].real() < 0 && std::isnan(x[i].imag()))
- {
- assert(r.real() == 0);
- assert(r.imag() == 0);
- }
- else if (std::isinf(x[i].real()) && x[i].real() > 0 && std::isnan(x[i].imag()))
- {
- assert(std::isinf(r.real()));
- assert(std::isnan(r.imag()));
- }
- else if (std::isnan(x[i].real()) && x[i].imag() == 0)
- {
- assert(std::isnan(r.real()));
- assert(r.imag() == 0);
- assert(std::signbit(x[i].imag()) == std::signbit(r.imag()));
- }
- else if (std::isnan(x[i].real()) && x[i].imag() != 0)
- {
- assert(std::isnan(r.real()));
- assert(std::isnan(r.imag()));
- }
- else if (std::isnan(x[i].real()) && std::isnan(x[i].imag()))
- {
- assert(std::isnan(r.real()));
- assert(std::isnan(r.imag()));
- }
- else if (std::isfinite(x[i].imag()) && std::abs(x[i].imag()) <= 1)
- {
- assert(!std::signbit(r.real()));
- assert(std::signbit(r.imag()) == std::signbit(x[i].imag()));
- }
- }
-}
-
-int main()
-{
- test<float>();
- test<double>();
- test<long double>();
- test_edges();
-}