1// { dg-options "-std=gnu++0x" } 2 3// 2007-10-12 Paolo Carlini <pcarlini@suse.de> 4// 5// Copyright (C) 2007, 2009 Free Software Foundation, Inc. 6// 7// This file is part of the GNU ISO C++ Library. This library is free 8// software; you can redistribute it and/or modify it under the 9// terms of the GNU General Public License as published by the 10// Free Software Foundation; either version 3, or (at your option) 11// any later version. 12 13// This library is distributed in the hope that it will be useful, 14// but WITHOUT ANY WARRANTY; without Pred the implied warranty of 15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16// GNU General Public License for more details. 17 18// You should have received a copy of the GNU General Public License along 19// with this library; see the file COPYING3. If not see 20// <http://www.gnu.org/licenses/>. 21 22// 25.3.6 Heap operations [lib.alg.heap.operations] 23 24#include <algorithm> 25#include <functional> 26#include <testsuite_hooks.h> 27 28int A[] = {9, 8, 6, 7, 7, 5, 5, 3, 6, 4, 1, 2, 3, 4}; 29int B[] = {1, 3, 2, 4, 4, 6, 3, 5, 5, 7, 7, 6, 8, 9}; 30const int N = sizeof(A) / sizeof(int); 31 32void 33test01() 34{ 35 bool test __attribute__((unused)) = true; 36 37 for (int i = 0; i <= N; ++i) 38 { 39 VERIFY( A + i == std::is_heap_until(A, A + i) ); 40 VERIFY( A + i == std::is_heap_until(A, A + i, std::less<int>()) ); 41 VERIFY( B + i == std::is_heap_until(B, B + i, std::greater<int>()) ); 42 VERIFY( B + (i < 2 ? i : 1) == std::is_heap_until(B, B + i) ); 43 } 44} 45 46int 47main() 48{ 49 test01(); 50 return 0; 51} 52