diff options
| author | Eric Fiselier <eric@efcs.ca> | 2014-12-20 01:40:03 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2014-12-20 01:40:03 +0000 |
| commit | 5a83710e371fe68a06e6e3876c6a2c8b820a8976 (patch) | |
| tree | afde4c82ad6704681781c5cd49baa3fbd05c85db /libcxx/test/algorithms/alg.sorting/alg.nth.element | |
| parent | f11e8eab527fba316c64112f6e05de1a79693a3e (diff) | |
| download | bcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.tar.gz bcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.zip | |
Move test into test/std subdirectory.
llvm-svn: 224658
Diffstat (limited to 'libcxx/test/algorithms/alg.sorting/alg.nth.element')
| -rw-r--r-- | libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element.pass.cpp | 63 | ||||
| -rw-r--r-- | libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp | 86 |
2 files changed, 0 insertions, 149 deletions
diff --git a/libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element.pass.cpp b/libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element.pass.cpp deleted file mode 100644 index dc5564eb3fc..00000000000 --- a/libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element.pass.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <algorithm> - -// template<RandomAccessIterator Iter> -// requires ShuffleIterator<Iter> -// && LessThanComparable<Iter::value_type> -// void -// nth_element(Iter first, Iter nth, Iter last); - -#include <algorithm> -#include <cassert> - -void -test_one(unsigned N, unsigned M) -{ - assert(N != 0); - assert(M < N); - int* array = new int[N]; - for (int i = 0; i < N; ++i) - array[i] = i; - std::random_shuffle(array, array+N); - std::nth_element(array, array+M, array+N); - assert(array[M] == M); - std::nth_element(array, array+N, array+N); // begin, end, end - delete [] array; -} - -void -test(unsigned N) -{ - test_one(N, 0); - test_one(N, 1); - test_one(N, 2); - test_one(N, 3); - test_one(N, N/2-1); - test_one(N, N/2); - test_one(N, N/2+1); - test_one(N, N-3); - test_one(N, N-2); - test_one(N, N-1); -} - -int main() -{ - int d = 0; - std::nth_element(&d, &d, &d); - assert(d == 0); - test(256); - test(257); - test(499); - test(500); - test(997); - test(1000); - test(1009); -} diff --git a/libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp b/libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp deleted file mode 100644 index cf8659038f1..00000000000 --- a/libcxx/test/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp +++ /dev/null @@ -1,86 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <algorithm> - -// template<RandomAccessIterator Iter, StrictWeakOrder<auto, Iter::value_type> Compare> -// requires ShuffleIterator<Iter> -// && CopyConstructible<Compare> -// void -// nth_element(Iter first, Iter nth, Iter last, Compare comp); - -#include <algorithm> -#include <functional> -#include <vector> -#include <cassert> -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES -#include <memory> - -struct indirect_less -{ - template <class P> - bool operator()(const P& x, const P& y) - {return *x < *y;} -}; - -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES - -void -test_one(unsigned N, unsigned M) -{ - assert(N != 0); - assert(M < N); - int* array = new int[N]; - for (int i = 0; i < N; ++i) - array[i] = i; - std::random_shuffle(array, array+N); - std::nth_element(array, array+M, array+N, std::greater<int>()); - assert(array[M] == N-M-1); - std::nth_element(array, array+N, array+N, std::greater<int>()); // begin, end, end - delete [] array; -} - -void -test(unsigned N) -{ - test_one(N, 0); - test_one(N, 1); - test_one(N, 2); - test_one(N, 3); - test_one(N, N/2-1); - test_one(N, N/2); - test_one(N, N/2+1); - test_one(N, N-3); - test_one(N, N-2); - test_one(N, N-1); -} - -int main() -{ - int d = 0; - std::nth_element(&d, &d, &d); - assert(d == 0); - test(256); - test(257); - test(499); - test(500); - test(997); - test(1000); - test(1009); - -#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES - { - std::vector<std::unique_ptr<int> > v(1000); - for (int i = 0; i < v.size(); ++i) - v[i].reset(new int(i)); - std::nth_element(v.begin(), v.begin() + v.size()/2, v.end(), indirect_less()); - assert(*v[v.size()/2] == v.size()/2); - } -#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES -} |

