blob: 71f276d8d4709fef37162c9054dee1e5d85a6029 [file] [log] [blame]
Howard Hinnant3e519522010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnant5b08a8a2010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnant3e519522010-05-11 19:42:16 +00004//
Howard Hinnant412dbeb2010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3e519522010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <complex>
11
12// template<class T>
13// complex<T>
14// conj(const complex<T>& x);
15
16#include <complex>
17#include <cassert>
18
19template <class T>
20void
21test(const std::complex<T>& z, std::complex<T> x)
22{
23 assert(conj(z) == x);
24}
25
26template <class T>
27void
28test()
29{
30 test(std::complex<T>(1, 2), std::complex<T>(1, -2));
31 test(std::complex<T>(-1, 2), std::complex<T>(-1, -2));
32 test(std::complex<T>(1, -2), std::complex<T>(1, 2));
33 test(std::complex<T>(-1, -2), std::complex<T>(-1, 2));
34}
35
36int main()
37{
38 test<float>();
39 test<double>();
40 test<long double>();
41}