1// 2005-02-13 Paolo Carlini <pcarlini@suse.de> 2 3// Copyright (C) 2005-2015 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 3, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// You should have received a copy of the GNU General Public License along 17// with this library; see the file COPYING3. If not see 18// <http://www.gnu.org/licenses/>. 19 20// 26.5 C Library 21 22#include <cmath> 23#include <testsuite_hooks.h> 24 25template<typename T> 26 void test01_do() 27 { 28 using namespace std; 29 bool test __attribute__((unused)) = true; 30 31 VERIFY( pow(T(1.0), 0) == T(1.0) ); 32 VERIFY( pow(T(2.0), 0) == T(1.0) ); 33 VERIFY( pow(T(-1.0), 0) == T(1.0) ); 34 VERIFY( pow(T(-4.0), 0) == T(1.0) ); 35 36 VERIFY( pow(T(1.0), 1) == T(1.0) ); 37 VERIFY( pow(T(2.0), 1) == T(2.0) ); 38 VERIFY( pow(T(-1.0), 1) == T(-1.0) ); 39 VERIFY( pow(T(-4.0), 1) == T(-4.0) ); 40 41 VERIFY( pow(T(1.0), -1) == T(1.0) / T(1.0) ); 42 VERIFY( pow(T(2.0), -1) == T(1.0) / T(2.0) ); 43 VERIFY( pow(T(-1.0), -1) == T(1.0) / T(-1.0) ); 44 VERIFY( pow(T(-4.0), -1) == T(1.0) / T(-4.0) ); 45 46 VERIFY( pow(T(1.0), 2) == T(1.0) * T(1.0) ); 47 VERIFY( pow(T(2.0), 2) == T(2.0) * T(2.0) ); 48 VERIFY( pow(T(-1.0), 2) == T(-1.0) * T(-1.0) ); 49 VERIFY( pow(T(-4.0), 2) == T(-4.0) * T(-4.0) ); 50 } 51 52void test01() 53{ 54 test01_do<float>(); 55 test01_do<double>(); 56 test01_do<long double>(); 57} 58 59int main() 60{ 61 test01(); 62 return 0; 63} 64