median.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright (C) 2005-2022 Free Software Foundation, Inc.
  2. //
  3. // This file is part of the GNU ISO C++ Library. This library is free
  4. // software; you can redistribute it and/or modify it under the
  5. // terms of the GNU General Public License as published by the
  6. // Free Software Foundation; either version 3, or (at your option)
  7. // any later version.
  8. // This library is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. // GNU General Public License for more details.
  12. // You should have received a copy of the GNU General Public License along
  13. // with this library; see the file COPYING3. If not see
  14. // <http://www.gnu.org/licenses/>.
  15. // median - SGI extension
  16. #include <ext/algorithm>
  17. #include <testsuite_hooks.h>
  18. bool pred(const int& l, const int& r)
  19. {
  20. return l<r;
  21. }
  22. using __gnu_cxx::__median;
  23. int main()
  24. {
  25. const int i=1;
  26. const int j=2;
  27. const int k=3;
  28. VERIFY(__median(i, j, k) == j && __median(i, j, k, pred) == j);
  29. VERIFY(__median(i, k, j) == j && __median(i, k, j, pred) == j);
  30. VERIFY(__median(j, i, k) == j && __median(j, i, k, pred) == j);
  31. VERIFY(__median(j, k, i) == j && __median(j, k, i, pred) == j);
  32. VERIFY(__median(k, i, j) == j && __median(k, i, j, pred) == j);
  33. VERIFY(__median(k, j, i) == j && __median(k, j, i, pred) == j);
  34. }