1 /* Test mp*_class unary expressions.
3 Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
5 This file is part of the GNU MP Library.
7 The GNU MP Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
12 The GNU MP Library is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 License for more details.
17 You should have received a copy of the GNU Lesser General Public License
18 along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
35 // template <class T, class Op>
36 // __gmp_expr<T, __gmp_unary_expr<__gmp_expr<T, T>, Op> >
39 mpz_class b(+a); ASSERT_ALWAYS(b == 1);
44 b = -a; ASSERT_ALWAYS(b == -2);
49 b = ~a; ASSERT_ALWAYS(b == -4);
52 // template <class T, class U, class Op>
53 // __gmp_expr<T, __gmp_unary_expr<__gmp_expr<T, U>, Op> >
56 mpz_class b(-(-a)); ASSERT_ALWAYS(b == 1);
61 b = -(-(-a)); ASSERT_ALWAYS(b == -2);
68 // template <class T, class Op>
69 // __gmp_expr<T, __gmp_unary_expr<__gmp_expr<T, T>, Op> >
72 mpq_class b(+a); ASSERT_ALWAYS(b == 1);
77 b = -a; ASSERT_ALWAYS(b == -2);
80 // template <class T, class U, class Op>
81 // __gmp_expr<T, __gmp_unary_expr<__gmp_expr<T, U>, Op> >
84 mpq_class b(-(-a)); ASSERT_ALWAYS(b == 1);
89 b = -(-(-a)); ASSERT_ALWAYS(b == -2);
96 // template <class T, class Op>
97 // __gmp_expr<T, __gmp_unary_expr<__gmp_expr<T, T>, Op> >
100 mpf_class b(+a); ASSERT_ALWAYS(b == 1);
105 b = -a; ASSERT_ALWAYS(b == -2);
108 // template <class T, class U, class Op>
109 // __gmp_expr<T, __gmp_unary_expr<__gmp_expr<T, U>, Op> >
112 mpf_class b(-(-a)); ASSERT_ALWAYS(b == 1);
117 b = -(-(-a)); ASSERT_ALWAYS(b == -2);