1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
14 // operator/(const complex<T>& lhs, const complex<T>& rhs);
23 test(const std::complex<T>& lhs, const std::complex<T>& rhs, std::complex<T> x)
25 assert(lhs / rhs == x);
32 std::complex<T> lhs(-4.0, 7.5);
33 std::complex<T> rhs(1.5, 2.5);
34 std::complex<T> x(1.5, 2.5);
40 const unsigned N = sizeof(testcases) / sizeof(testcases[0]);
41 for (unsigned i = 0; i < N; ++i)
43 for (unsigned j = 0; j < N; ++j)
45 std::complex<double> r = testcases[i] / testcases[j];
46 switch (classify(testcases[i]))
49 switch (classify(testcases[j]))
52 assert(classify(r) == NaN);
55 assert(classify(r) == zero);
58 assert(classify(r) == zero);
61 assert(classify(r) == NaN);
64 assert(classify(r) == NaN);
69 switch (classify(testcases[j]))
72 assert(classify(r) == inf);
75 assert(classify(r) == non_zero);
78 assert(classify(r) == zero);
81 assert(classify(r) == NaN);
84 assert(classify(r) == NaN);
89 switch (classify(testcases[j]))
92 assert(classify(r) == inf);
95 assert(classify(r) == inf);
98 assert(classify(r) == NaN);
101 assert(classify(r) == NaN);
104 assert(classify(r) == NaN);
109 switch (classify(testcases[j]))
112 assert(classify(r) == NaN);
115 assert(classify(r) == NaN);
118 assert(classify(r) == NaN);
121 assert(classify(r) == NaN);
124 assert(classify(r) == NaN);
129 switch (classify(testcases[j]))
132 assert(classify(r) == inf);
135 assert(classify(r) == NaN);
138 assert(classify(r) == NaN);
141 assert(classify(r) == NaN);
144 assert(classify(r) == NaN);