summaryrefslogtreecommitdiffstats
path: root/libcxx/test/algorithms/alg.modifying.operations
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/algorithms/alg.modifying.operations')
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp73
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp51
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp80
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp73
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill.pass.cpp59
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp153
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate.pass.cpp47
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp47
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.move/move.pass.cpp134
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp88
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp58
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp104
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp50
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_point.pass.cpp76
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.partitions/stable_partition.pass.cpp314
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.pass.cpp30
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_rand.pass.cpp37
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_urng.pass.cpp31
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove.pass.cpp83
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy.pass.cpp70
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp73
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp98
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace.pass.cpp44
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy.pass.cpp72
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy_if.pass.cpp74
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_if.pass.cpp45
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp60
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp81
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp439
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp134
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.swap/iter_swap.pass.cpp27
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpp110
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.transform/binary_transform.pass.cpp217
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.transform/unary_transform.pass.cpp77
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique.pass.cpp189
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy.pass.cpp125
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy_pred.pass.cpp152
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_pred.pass.cpp231
-rw-r--r--libcxx/test/algorithms/alg.modifying.operations/nothing_to_do.pass.cpp12
39 files changed, 0 insertions, 3918 deletions
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
deleted file mode 100644
index a20d6ab7df8..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy.pass.cpp
+++ /dev/null
@@ -1,73 +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<InputIterator InIter, OutputIterator<auto, InIter::reference> OutIter>
-// OutIter
-// copy(InIter first, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const unsigned N = 1000;
- int ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i] = i;
- int ib[N] = {0};
-
- OutIter r = std::copy(InIter(ia), InIter(ia+N), OutIter(ib));
- assert(base(r) == ib+N);
- for (unsigned i = 0; i < N; ++i)
- assert(ia[i] == ib[i]);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, input_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
deleted file mode 100644
index 039fd2fe026..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
+++ /dev/null
@@ -1,51 +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<BidirectionalIterator InIter, BidirectionalIterator OutIter>
-// requires OutputIterator<OutIter, InIter::reference>
-// OutIter
-// copy_backward(InIter first, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const unsigned N = 1000;
- int ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i] = i;
- int ib[N] = {0};
-
- OutIter r = std::copy_backward(InIter(ia), InIter(ia+N), OutIter(ib+N));
- assert(base(r) == ib);
- for (unsigned i = 0; i < N; ++i)
- assert(ia[i] == ib[i]);
-}
-
-int main()
-{
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp
deleted file mode 100644
index ab402a5eb8b..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp
+++ /dev/null
@@ -1,80 +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<InputIterator InIter, OutputIterator<auto, InIter::reference> OutIter,
-// Predicate<auto, InIter::value_type> Pred>
-// requires CopyConstructible<Pred>
-// OutIter
-// copy_if(InIter first, InIter last, OutIter result, Pred pred);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct Pred
-{
- bool operator()(int i) {return i % 3 == 0;}
-};
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const unsigned N = 1000;
- int ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i] = i;
- int ib[N] = {0};
-
- OutIter r = std::copy_if(InIter(ia), InIter(ia+N), OutIter(ib), Pred());
- assert(base(r) == ib+N/3+1);
- for (unsigned i = 0; i < N/3+1; ++i)
- assert(ib[i] % 3 == 0);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, input_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
deleted file mode 100644
index f594a0bf618..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.copy/copy_n.pass.cpp
+++ /dev/null
@@ -1,73 +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<InputIterator InIter, OutputIterator<auto, InIter::reference> OutIter>
-// OutIter
-// copy_n(InIter first, InIter::difference_type n, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const unsigned N = 1000;
- int ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i] = i;
- int ib[N] = {0};
-
- OutIter r = std::copy_n(InIter(ia), N/2, OutIter(ib));
- assert(base(r) == ib+N/2);
- for (unsigned i = 0; i < N/2; ++i)
- assert(ia[i] == ib[i]);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, input_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill.pass.cpp
deleted file mode 100644
index c72adac9e2e..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill.pass.cpp
+++ /dev/null
@@ -1,59 +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<ForwardIterator Iter, class T>
-// requires OutputIterator<Iter, const T&>
-// void
-// fill(Iter first, Iter last, const T& value);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test_char()
-{
- const unsigned n = 4;
- char ca[n] = {0};
- std::fill(Iter(ca), Iter(ca+n), char(1));
- assert(ca[0] == 1);
- assert(ca[1] == 1);
- assert(ca[2] == 1);
- assert(ca[3] == 1);
-}
-
-template <class Iter>
-void
-test_int()
-{
- const unsigned n = 4;
- int ia[n] = {0};
- std::fill(Iter(ia), Iter(ia+n), 1);
- assert(ia[0] == 1);
- assert(ia[1] == 1);
- assert(ia[2] == 1);
- assert(ia[3] == 1);
-}
-
-int main()
-{
- test_char<forward_iterator<char*> >();
- test_char<bidirectional_iterator<char*> >();
- test_char<random_access_iterator<char*> >();
- test_char<char*>();
-
- test_int<forward_iterator<int*> >();
- test_int<bidirectional_iterator<int*> >();
- test_int<random_access_iterator<int*> >();
- test_int<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp
deleted file mode 100644
index bffcf1b63cb..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp
+++ /dev/null
@@ -1,153 +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<class Iter, IntegralLike Size, class T>
-// requires OutputIterator<Iter, const T&>
-// OutputIterator
-// fill_n(Iter first, Size n, const T& value);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test_char()
-{
- const unsigned n = 4;
- char ca[n] = {0};
- assert(std::fill_n(Iter(ca), n, char(1)) == std::next(Iter(ca), n));
- assert(ca[0] == 1);
- assert(ca[1] == 1);
- assert(ca[2] == 1);
- assert(ca[3] == 1);
-}
-
-template <class Iter>
-void
-test_int()
-{
- const unsigned n = 4;
- int ia[n] = {0};
- assert(std::fill_n(Iter(ia), n, 1) == std::next(Iter(ia), n));
- assert(ia[0] == 1);
- assert(ia[1] == 1);
- assert(ia[2] == 1);
- assert(ia[3] == 1);
-}
-
-void
-test_int_array()
-{
- const unsigned n = 4;
- int ia[n] = {0};
- assert(std::fill_n(ia, n, static_cast<char>(1)) == std::next(ia, n));
- assert(ia[0] == 1);
- assert(ia[1] == 1);
- assert(ia[2] == 1);
- assert(ia[3] == 1);
-}
-
-struct source {
- source() : i(0) { }
-
- operator int() const { return i++; }
- mutable int i;
-};
-
-void
-test_int_array_struct_source()
-{
- const unsigned n = 4;
- int ia[n] = {0};
- assert(std::fill_n(ia, n, source()) == std::next(ia, n));
- assert(ia[0] == 0);
- assert(ia[1] == 1);
- assert(ia[2] == 2);
- assert(ia[3] == 3);
-}
-
-struct test1 {
- test1() : c(0) { }
- test1(char c) : c(c + 1) { }
- char c;
-};
-
-void
-test_struct_array()
-{
- const unsigned n = 4;
- test1 test1a[n] = {0};
- assert(std::fill_n(test1a, n, static_cast<char>(10)) == std::next(test1a, n));
- assert(test1a[0].c == 11);
- assert(test1a[1].c == 11);
- assert(test1a[2].c == 11);
- assert(test1a[3].c == 11);
-}
-
-class A
-{
- char a_;
-public:
- A() {}
- explicit A(char a) : a_(a) {}
- operator unsigned char() const {return 'b';}
-
- friend bool operator==(const A& x, const A& y)
- {return x.a_ == y.a_;}
-};
-
-void
-test5()
-{
- A a[3];
- assert(std::fill_n(&a[0], 3, A('a')) == a+3);
- assert(a[0] == A('a'));
- assert(a[1] == A('a'));
- assert(a[2] == A('a'));
-}
-
-struct Storage
-{
- union
- {
- unsigned char a;
- unsigned char b;
- };
-};
-
-void test6()
-{
- Storage foo[5];
- std::fill_n(&foo[0], 5, Storage());
-}
-
-
-int main()
-{
- test_char<forward_iterator<char*> >();
- test_char<bidirectional_iterator<char*> >();
- test_char<random_access_iterator<char*> >();
- test_char<char*>();
-
- test_int<forward_iterator<int*> >();
- test_int<bidirectional_iterator<int*> >();
- test_int<random_access_iterator<int*> >();
- test_int<int*>();
-
- test_int_array();
- test_int_array_struct_source();
- test_struct_array();
-
- test5();
- test6();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate.pass.cpp
deleted file mode 100644
index f166d67ba2f..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate.pass.cpp
+++ /dev/null
@@ -1,47 +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<ForwardIterator Iter, Callable Generator>
-// requires OutputIterator<Iter, Generator::result_type>
-// && CopyConstructible<Generator>
-// void
-// generate(Iter first, Iter last, Generator gen);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct gen_test
-{
- int operator()() const {return 1;}
-};
-
-template <class Iter>
-void
-test()
-{
- const unsigned n = 4;
- int ia[n] = {0};
- std::generate(Iter(ia), Iter(ia+n), gen_test());
- assert(ia[0] == 1);
- assert(ia[1] == 1);
- assert(ia[2] == 1);
- assert(ia[3] == 1);
-}
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
deleted file mode 100644
index 249419169a1..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
+++ /dev/null
@@ -1,47 +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<class Iter, IntegralLike Size, Callable Generator>
-// requires OutputIterator<Iter, Generator::result_type>
-// && CopyConstructible<Generator>
-// void
-// generate_n(Iter first, Size n, Generator gen);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct gen_test
-{
- int operator()() const {return 2;}
-};
-
-template <class Iter>
-void
-test()
-{
- const unsigned n = 4;
- int ia[n] = {0};
- assert(std::generate_n(Iter(ia), n, gen_test()) == Iter(ia+n));
- assert(ia[0] == 2);
- assert(ia[1] == 2);
- assert(ia[2] == 2);
- assert(ia[3] == 2);
-}
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.move/move.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.move/move.pass.cpp
deleted file mode 100644
index 43234be5d3b..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.move/move.pass.cpp
+++ /dev/null
@@ -1,134 +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<InputIterator InIter, typename OutIter>
-// requires OutputIterator<OutIter, RvalueOf<InIter::reference>::type>
-// OutIter
-// move(InIter first, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const unsigned N = 1000;
- int ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i] = i;
- int ib[N] = {0};
-
- OutIter r = std::move(InIter(ia), InIter(ia+N), OutIter(ib));
- assert(base(r) == ib+N);
- for (unsigned i = 0; i < N; ++i)
- assert(ia[i] == ib[i]);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class InIter, class OutIter>
-void
-test1()
-{
- const unsigned N = 100;
- std::unique_ptr<int> ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i].reset(new int(i));
- std::unique_ptr<int> ib[N];
-
- OutIter r = std::move(InIter(ia), InIter(ia+N), OutIter(ib));
- assert(base(r) == ib+N);
- for (unsigned i = 0; i < N; ++i)
- assert(*ib[i] == i);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, input_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- test1<input_iterator<std::unique_ptr<int>*>, output_iterator<std::unique_ptr<int>*> >();
- test1<input_iterator<std::unique_ptr<int>*>, input_iterator<std::unique_ptr<int>*> >();
- test1<input_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<input_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<input_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<input_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<forward_iterator<std::unique_ptr<int>*>, output_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, input_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<bidirectional_iterator<std::unique_ptr<int>*>, output_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, input_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<random_access_iterator<std::unique_ptr<int>*>, output_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, input_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<std::unique_ptr<int>*, output_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, input_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, forward_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, random_access_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, std::unique_ptr<int>*>();
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp
deleted file mode 100644
index 02b6b16eca0..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp
+++ /dev/null
@@ -1,88 +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<BidirectionalIterator InIter, BidirectionalIterator OutIter>
-// requires OutputIterator<OutIter, RvalueOf<InIter::reference>::type>
-// OutIter
-// move_backward(InIter first, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const unsigned N = 1000;
- int ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i] = i;
- int ib[N] = {0};
-
- OutIter r = std::move_backward(InIter(ia), InIter(ia+N), OutIter(ib+N));
- assert(base(r) == ib);
- for (unsigned i = 0; i < N; ++i)
- assert(ia[i] == ib[i]);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class InIter, class OutIter>
-void
-test1()
-{
- const unsigned N = 100;
- std::unique_ptr<int> ia[N];
- for (unsigned i = 0; i < N; ++i)
- ia[i].reset(new int(i));
- std::unique_ptr<int> ib[N];
-
- OutIter r = std::move_backward(InIter(ia), InIter(ia+N), OutIter(ib+N));
- assert(base(r) == ib);
- for (unsigned i = 0; i < N; ++i)
- assert(*ib[i] == i);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- test1<bidirectional_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<random_access_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<std::unique_ptr<int>*, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, random_access_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, std::unique_ptr<int>*>();
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
deleted file mode 100644
index 6098a203d82..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
+++ /dev/null
@@ -1,58 +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 <class InputIterator, class Predicate>
-// bool
-// is_partitioned(InputIterator first, InputIterator last, Predicate pred);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct is_odd
-{
- bool operator()(const int& i) const {return i & 1;}
-};
-
-int main()
-{
- {
- const int ia[] = {1, 2, 3, 4, 5, 6};
- assert(!std::is_partitioned(input_iterator<const int*>(std::begin(ia)),
- input_iterator<const int*>(std::end(ia)),
- is_odd()));
- }
- {
- const int ia[] = {1, 3, 5, 2, 4, 6};
- assert( std::is_partitioned(input_iterator<const int*>(std::begin(ia)),
- input_iterator<const int*>(std::end(ia)),
- is_odd()));
- }
- {
- const int ia[] = {2, 4, 6, 1, 3, 5};
- assert(!std::is_partitioned(input_iterator<const int*>(std::begin(ia)),
- input_iterator<const int*>(std::end(ia)),
- is_odd()));
- }
- {
- const int ia[] = {1, 3, 5, 2, 4, 6, 7};
- assert(!std::is_partitioned(input_iterator<const int*>(std::begin(ia)),
- input_iterator<const int*>(std::end(ia)),
- is_odd()));
- }
- {
- const int ia[] = {1, 3, 5, 2, 4, 6, 7};
- assert( std::is_partitioned(input_iterator<const int*>(std::begin(ia)),
- input_iterator<const int*>(std::begin(ia)),
- is_odd()));
- }
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
deleted file mode 100644
index 8eddfbc4d04..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
+++ /dev/null
@@ -1,104 +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<BidirectionalIterator Iter, Predicate<auto, Iter::value_type> Pred>
-// requires ShuffleIterator<Iter>
-// && CopyConstructible<Pred>
-// Iter
-// partition(Iter first, Iter last, Pred pred);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-struct is_odd
-{
- bool operator()(const int& i) const {return i & 1;}
-};
-
-template <class Iter>
-void
-test()
-{
- // check mixed
- int ia[] = {1, 2, 3, 4, 5, 6, 7, 8 ,9};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- Iter r = std::partition(Iter(ia), Iter(ia + sa), is_odd());
- assert(base(r) == ia + 5);
- for (int* i = ia; i < base(r); ++i)
- assert(is_odd()(*i));
- for (int* i = base(r); i < ia+sa; ++i)
- assert(!is_odd()(*i));
- // check empty
- r = std::partition(Iter(ia), Iter(ia), is_odd());
- assert(base(r) == ia);
- // check all false
- for (unsigned i = 0; i < sa; ++i)
- ia[i] = 2*i;
- r = std::partition(Iter(ia), Iter(ia+sa), is_odd());
- assert(base(r) == ia);
- // check all true
- for (unsigned i = 0; i < sa; ++i)
- ia[i] = 2*i+1;
- r = std::partition(Iter(ia), Iter(ia+sa), is_odd());
- assert(base(r) == ia+sa);
- // check all true but last
- for (unsigned i = 0; i < sa; ++i)
- ia[i] = 2*i+1;
- ia[sa-1] = 10;
- r = std::partition(Iter(ia), Iter(ia+sa), is_odd());
- assert(base(r) == ia+sa-1);
- for (int* i = ia; i < base(r); ++i)
- assert(is_odd()(*i));
- for (int* i = base(r); i < ia+sa; ++i)
- assert(!is_odd()(*i));
- // check all true but first
- for (unsigned i = 0; i < sa; ++i)
- ia[i] = 2*i+1;
- ia[0] = 10;
- r = std::partition(Iter(ia), Iter(ia+sa), is_odd());
- assert(base(r) == ia+sa-1);
- for (int* i = ia; i < base(r); ++i)
- assert(is_odd()(*i));
- for (int* i = base(r); i < ia+sa; ++i)
- assert(!is_odd()(*i));
- // check all false but last
- for (unsigned i = 0; i < sa; ++i)
- ia[i] = 2*i;
- ia[sa-1] = 11;
- r = std::partition(Iter(ia), Iter(ia+sa), is_odd());
- assert(base(r) == ia+1);
- for (int* i = ia; i < base(r); ++i)
- assert(is_odd()(*i));
- for (int* i = base(r); i < ia+sa; ++i)
- assert(!is_odd()(*i));
- // check all false but first
- for (unsigned i = 0; i < sa; ++i)
- ia[i] = 2*i;
- ia[0] = 11;
- r = std::partition(Iter(ia), Iter(ia+sa), is_odd());
- assert(base(r) == ia+1);
- for (int* i = ia; i < base(r); ++i)
- assert(is_odd()(*i));
- for (int* i = base(r); i < ia+sa; ++i)
- assert(!is_odd()(*i));
-}
-
-int main()
-{
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp
deleted file mode 100644
index 67e1cccaf73..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp
+++ /dev/null
@@ -1,50 +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 <class InputIterator, class OutputIterator1,
-// class OutputIterator2, class Predicate>
-// pair<OutputIterator1, OutputIterator2>
-// partition_copy(InputIterator first, InputIterator last,
-// OutputIterator1 out_true, OutputIterator2 out_false,
-// Predicate pred);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct is_odd
-{
- bool operator()(const int& i) const {return i & 1;}
-};
-
-int main()
-{
- {
- const int ia[] = {1, 2, 3, 4, 6, 8, 5, 7};
- int r1[10] = {0};
- int r2[10] = {0};
- typedef std::pair<output_iterator<int*>, int*> P;
- P p = std::partition_copy(input_iterator<const int*>(std::begin(ia)),
- input_iterator<const int*>(std::end(ia)),
- output_iterator<int*>(r1), r2, is_odd());
- assert(p.first.base() == r1 + 4);
- assert(r1[0] == 1);
- assert(r1[1] == 3);
- assert(r1[2] == 5);
- assert(r1[3] == 7);
- assert(p.second == r2 + 4);
- assert(r2[0] == 2);
- assert(r2[1] == 4);
- assert(r2[2] == 6);
- assert(r2[3] == 8);
- }
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_point.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_point.pass.cpp
deleted file mode 100644
index f5b832c6639..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/partition_point.pass.cpp
+++ /dev/null
@@ -1,76 +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<class ForwardIterator, class Predicate>
-// ForwardIterator
-// partition_point(ForwardIterator first, ForwardIterator last, Predicate pred);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct is_odd
-{
- bool operator()(const int& i) const {return i & 1;}
-};
-
-int main()
-{
- {
- const int ia[] = {2, 4, 6, 8, 10};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia));
- }
- {
- const int ia[] = {1, 2, 4, 6, 8};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia + 1));
- }
- {
- const int ia[] = {1, 3, 2, 4, 6};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia + 2));
- }
- {
- const int ia[] = {1, 3, 5, 2, 4, 6};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia + 3));
- }
- {
- const int ia[] = {1, 3, 5, 7, 2, 4};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia + 4));
- }
- {
- const int ia[] = {1, 3, 5, 7, 9, 2};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia + 5));
- }
- {
- const int ia[] = {1, 3, 5, 7, 9, 11};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::end(ia)),
- is_odd()) == forward_iterator<const int*>(ia + 6));
- }
- {
- const int ia[] = {1, 3, 5, 2, 4, 6, 7};
- assert(std::partition_point(forward_iterator<const int*>(std::begin(ia)),
- forward_iterator<const int*>(std::begin(ia)),
- is_odd()) == forward_iterator<const int*>(ia));
- }
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/stable_partition.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/stable_partition.pass.cpp
deleted file mode 100644
index 7810dec2fe1..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.partitions/stable_partition.pass.cpp
+++ /dev/null
@@ -1,314 +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<BidirectionalIterator Iter, Predicate<auto, Iter::value_type> Pred>
-// requires ShuffleIterator<Iter>
-// && CopyConstructible<Pred>
-// Iter
-// stable_partition(Iter first, Iter last, Pred pred);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-struct is_odd
-{
- bool operator()(const int& i) const {return i & 1;}
-};
-
-struct odd_first
-{
- bool operator()(const std::pair<int,int>& p) const
- {return p.first & 1;}
-};
-
-template <class Iter>
-void
-test()
-{
- { // check mixed
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(0, 1),
- P(0, 2),
- P(1, 1),
- P(1, 2),
- P(2, 1),
- P(2, 2),
- P(3, 1),
- P(3, 2),
- P(4, 1),
- P(4, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + 4);
- assert(array[0] == P(1, 1));
- assert(array[1] == P(1, 2));
- assert(array[2] == P(3, 1));
- assert(array[3] == P(3, 2));
- assert(array[4] == P(0, 1));
- assert(array[5] == P(0, 2));
- assert(array[6] == P(2, 1));
- assert(array[7] == P(2, 2));
- assert(array[8] == P(4, 1));
- assert(array[9] == P(4, 2));
- }
- {
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(0, 1),
- P(0, 2),
- P(1, 1),
- P(1, 2),
- P(2, 1),
- P(2, 2),
- P(3, 1),
- P(3, 2),
- P(4, 1),
- P(4, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + 4);
- assert(array[0] == P(1, 1));
- assert(array[1] == P(1, 2));
- assert(array[2] == P(3, 1));
- assert(array[3] == P(3, 2));
- assert(array[4] == P(0, 1));
- assert(array[5] == P(0, 2));
- assert(array[6] == P(2, 1));
- assert(array[7] == P(2, 2));
- assert(array[8] == P(4, 1));
- assert(array[9] == P(4, 2));
- // check empty
- r = std::stable_partition(Iter(array), Iter(array), odd_first());
- assert(base(r) == array);
- // check one true
- r = std::stable_partition(Iter(array), Iter(array+1), odd_first());
- assert(base(r) == array+1);
- assert(array[0] == P(1, 1));
- // check one false
- r = std::stable_partition(Iter(array+4), Iter(array+5), odd_first());
- assert(base(r) == array+4);
- assert(array[4] == P(0, 1));
- }
- { // check all false
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(0, 1),
- P(0, 2),
- P(2, 1),
- P(2, 2),
- P(4, 1),
- P(4, 2),
- P(6, 1),
- P(6, 2),
- P(8, 1),
- P(8, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array);
- assert(array[0] == P(0, 1));
- assert(array[1] == P(0, 2));
- assert(array[2] == P(2, 1));
- assert(array[3] == P(2, 2));
- assert(array[4] == P(4, 1));
- assert(array[5] == P(4, 2));
- assert(array[6] == P(6, 1));
- assert(array[7] == P(6, 2));
- assert(array[8] == P(8, 1));
- assert(array[9] == P(8, 2));
- }
- { // check all true
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(1, 1),
- P(1, 2),
- P(3, 1),
- P(3, 2),
- P(5, 1),
- P(5, 2),
- P(7, 1),
- P(7, 2),
- P(9, 1),
- P(9, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + size);
- assert(array[0] == P(1, 1));
- assert(array[1] == P(1, 2));
- assert(array[2] == P(3, 1));
- assert(array[3] == P(3, 2));
- assert(array[4] == P(5, 1));
- assert(array[5] == P(5, 2));
- assert(array[6] == P(7, 1));
- assert(array[7] == P(7, 2));
- assert(array[8] == P(9, 1));
- assert(array[9] == P(9, 2));
- }
- { // check all false but first true
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(1, 1),
- P(0, 2),
- P(2, 1),
- P(2, 2),
- P(4, 1),
- P(4, 2),
- P(6, 1),
- P(6, 2),
- P(8, 1),
- P(8, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + 1);
- assert(array[0] == P(1, 1));
- assert(array[1] == P(0, 2));
- assert(array[2] == P(2, 1));
- assert(array[3] == P(2, 2));
- assert(array[4] == P(4, 1));
- assert(array[5] == P(4, 2));
- assert(array[6] == P(6, 1));
- assert(array[7] == P(6, 2));
- assert(array[8] == P(8, 1));
- assert(array[9] == P(8, 2));
- }
- { // check all false but last true
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(0, 1),
- P(0, 2),
- P(2, 1),
- P(2, 2),
- P(4, 1),
- P(4, 2),
- P(6, 1),
- P(6, 2),
- P(8, 1),
- P(1, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + 1);
- assert(array[0] == P(1, 2));
- assert(array[1] == P(0, 1));
- assert(array[2] == P(0, 2));
- assert(array[3] == P(2, 1));
- assert(array[4] == P(2, 2));
- assert(array[5] == P(4, 1));
- assert(array[6] == P(4, 2));
- assert(array[7] == P(6, 1));
- assert(array[8] == P(6, 2));
- assert(array[9] == P(8, 1));
- }
- { // check all true but first false
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(0, 1),
- P(1, 2),
- P(3, 1),
- P(3, 2),
- P(5, 1),
- P(5, 2),
- P(7, 1),
- P(7, 2),
- P(9, 1),
- P(9, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + size-1);
- assert(array[0] == P(1, 2));
- assert(array[1] == P(3, 1));
- assert(array[2] == P(3, 2));
- assert(array[3] == P(5, 1));
- assert(array[4] == P(5, 2));
- assert(array[5] == P(7, 1));
- assert(array[6] == P(7, 2));
- assert(array[7] == P(9, 1));
- assert(array[8] == P(9, 2));
- assert(array[9] == P(0, 1));
- }
- { // check all true but last false
- typedef std::pair<int,int> P;
- P array[] =
- {
- P(1, 1),
- P(1, 2),
- P(3, 1),
- P(3, 2),
- P(5, 1),
- P(5, 2),
- P(7, 1),
- P(7, 2),
- P(9, 1),
- P(0, 2)
- };
- const unsigned size = sizeof(array)/sizeof(array[0]);
- Iter r = std::stable_partition(Iter(array), Iter(array+size), odd_first());
- assert(base(r) == array + size-1);
- assert(array[0] == P(1, 1));
- assert(array[1] == P(1, 2));
- assert(array[2] == P(3, 1));
- assert(array[3] == P(3, 2));
- assert(array[4] == P(5, 1));
- assert(array[5] == P(5, 2));
- assert(array[6] == P(7, 1));
- assert(array[7] == P(7, 2));
- assert(array[8] == P(9, 1));
- assert(array[9] == P(0, 2));
- }
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-struct is_null
-{
- template <class P>
- bool operator()(const P& p) {return p == 0;}
-};
-
-template <class Iter>
-void
-test1()
-{
- const unsigned size = 5;
- std::unique_ptr<int> array[size];
- Iter r = std::stable_partition(Iter(array), Iter(array+size), is_null());
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<bidirectional_iterator<std::pair<int,int>*> >();
- test<random_access_iterator<std::pair<int,int>*> >();
- test<std::pair<int,int>*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
- test1<bidirectional_iterator<std::unique_ptr<int>*> >();
-#endif
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.pass.cpp
deleted file mode 100644
index a14ccf9e5e6..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.pass.cpp
+++ /dev/null
@@ -1,30 +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>
-// void
-// random_shuffle(Iter first, Iter last);
-
-#include <algorithm>
-#include <cassert>
-
-int main()
-{
- int ia[] = {1, 2, 3, 4};
- int ia1[] = {1, 4, 3, 2};
- int ia2[] = {4, 1, 2, 3};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- std::random_shuffle(ia, ia+sa);
- assert(std::equal(ia, ia+sa, ia1));
- std::random_shuffle(ia, ia+sa);
- assert(std::equal(ia, ia+sa, ia2));
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_rand.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_rand.pass.cpp
deleted file mode 100644
index b944c89e351..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_rand.pass.cpp
+++ /dev/null
@@ -1,37 +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, Callable<auto, Iter::difference_type> Rand>
-// requires ShuffleIterator<Iter>
-// && Convertible<Rand::result_type, Iter::difference_type>
-// void
-// random_shuffle(Iter first, Iter last, Rand&& rand);
-
-#include <algorithm>
-#include <cassert>
-
-struct gen
-{
- int operator()(int n)
- {
- return n-1;
- }
-};
-
-int main()
-{
- int ia[] = {1, 2, 3, 4};
- int ia1[] = {4, 1, 2, 3};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- gen r;
- std::random_shuffle(ia, ia+sa, r);
- assert(std::equal(ia, ia+sa, ia1));
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_urng.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_urng.pass.cpp
deleted file mode 100644
index 343ae90101f..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle_urng.pass.cpp
+++ /dev/null
@@ -1,31 +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<class RandomAccessIterator, class UniformRandomNumberGenerator>
-// void shuffle(RandomAccessIterator first, RandomAccessIterator last,
-// UniformRandomNumberGenerator& g);
-
-#include <algorithm>
-#include <random>
-#include <cassert>
-
-int main()
-{
- int ia[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- int ia1[] = {2, 7, 1, 4, 3, 6, 5, 10, 9, 8};
- int ia2[] = {1, 8, 3, 4, 6, 9, 5, 7, 2, 10};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- std::minstd_rand g;
- std::shuffle(ia, ia+sa, g);
- assert(std::equal(ia, ia+sa, ia1));
- std::shuffle(ia, ia+sa, g);
- assert(std::equal(ia, ia+sa, ia2));
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove.pass.cpp
deleted file mode 100644
index 80f86568c4d..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove.pass.cpp
+++ /dev/null
@@ -1,83 +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<ForwardIterator Iter, class T>
-// requires OutputIterator<Iter, RvalueOf<Iter::reference>::type>
-// && HasEqualTo<Iter::value_type, T>
-// Iter
-// remove(Iter first, Iter last, const T& value);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4, 2, 3, 4, 2};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- Iter r = std::remove(Iter(ia), Iter(ia+sa), 2);
- assert(base(r) == ia + sa-3);
- assert(ia[0] == 0);
- assert(ia[1] == 1);
- assert(ia[2] == 3);
- assert(ia[3] == 4);
- assert(ia[4] == 3);
- assert(ia[5] == 4);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class Iter>
-void
-test1()
-{
- const unsigned sa = 9;
- std::unique_ptr<int> ia[sa];
- ia[0].reset(new int(0));
- ia[1].reset(new int(1));
- ia[3].reset(new int(3));
- ia[4].reset(new int(4));
- ia[6].reset(new int(3));
- ia[7].reset(new int(4));
- Iter r = std::remove(Iter(ia), Iter(ia+sa), std::unique_ptr<int>());
- assert(base(r) == ia + sa-3);
- assert(*ia[0] == 0);
- assert(*ia[1] == 1);
- assert(*ia[2] == 3);
- assert(*ia[3] == 4);
- assert(*ia[4] == 3);
- assert(*ia[5] == 4);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- test1<forward_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*>();
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy.pass.cpp
deleted file mode 100644
index bf5f79cf835..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy.pass.cpp
+++ /dev/null
@@ -1,70 +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<InputIterator InIter, OutputIterator<auto, InIter::reference> OutIter, class T>
-// requires HasEqualTo<InIter::value_type, T>
-// OutIter
-// remove_copy(InIter first, InIter last, OutIter result, const T& value);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4, 2, 3, 4, 2};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa];
- OutIter r = std::remove_copy(InIter(ia), InIter(ia+sa), OutIter(ib), 2);
- assert(base(r) == ib + sa-3);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 3);
- assert(ib[3] == 4);
- assert(ib[4] == 3);
- assert(ib[5] == 4);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp
deleted file mode 100644
index de3f0a74104..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp
+++ /dev/null
@@ -1,73 +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<InputIterator InIter, OutputIterator<auto, InIter::reference> OutIter,
-// Predicate<auto, InIter::value_type> Pred>
-// requires CopyConstructible<Pred>
-// OutIter
-// remove_copy_if(InIter first, InIter last, OutIter result, Pred pred);
-
-#include <algorithm>
-#include <functional>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4, 2, 3, 4, 2};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa];
- OutIter r = std::remove_copy_if(InIter(ia), InIter(ia+sa), OutIter(ib),
- std::bind2nd(std::equal_to<int>(), 2));
- assert(base(r) == ib + sa-3);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 3);
- assert(ib[3] == 4);
- assert(ib[4] == 3);
- assert(ib[5] == 4);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp
deleted file mode 100644
index b234431295a..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.remove/remove_if.pass.cpp
+++ /dev/null
@@ -1,98 +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<ForwardIterator Iter, Predicate<auto, Iter::value_type> Pred>
-// requires OutputIterator<Iter, RvalueOf<Iter::reference>::type>
-// && CopyConstructible<Pred>
-// Iter
-// remove_if(Iter first, Iter last, Pred pred);
-
-#include <algorithm>
-#include <functional>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-#include "counting_predicates.hpp"
-
-bool equal2 ( int i ) { return i == 2; }
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4, 2, 3, 4, 2};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
-// int* r = std::remove_if(ia, ia+sa, std::bind2nd(std::equal_to<int>(), 2));
- unary_counting_predicate<bool(*)(int), int> cp(equal2);
- int* r = std::remove_if(ia, ia+sa, std::ref(cp));
- assert(r == ia + sa-3);
- assert(ia[0] == 0);
- assert(ia[1] == 1);
- assert(ia[2] == 3);
- assert(ia[3] == 4);
- assert(ia[4] == 3);
- assert(ia[5] == 4);
- assert(cp.count() == sa);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-struct pred
-{
- bool operator()(const std::unique_ptr<int>& i) {return *i == 2;}
-};
-
-template <class Iter>
-void
-test1()
-{
- const unsigned sa = 9;
- std::unique_ptr<int> ia[sa];
- ia[0].reset(new int(0));
- ia[1].reset(new int(1));
- ia[2].reset(new int(2));
- ia[3].reset(new int(3));
- ia[4].reset(new int(4));
- ia[5].reset(new int(2));
- ia[6].reset(new int(3));
- ia[7].reset(new int(4));
- ia[8].reset(new int(2));
- Iter r = std::remove_if(Iter(ia), Iter(ia+sa), pred());
- assert(base(r) == ia + sa-3);
- assert(*ia[0] == 0);
- assert(*ia[1] == 1);
- assert(*ia[2] == 3);
- assert(*ia[3] == 4);
- assert(*ia[4] == 3);
- assert(*ia[5] == 4);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- test1<forward_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*>();
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace.pass.cpp
deleted file mode 100644
index f6033351ffc..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace.pass.cpp
+++ /dev/null
@@ -1,44 +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<ForwardIterator Iter, class T>
-// requires OutputIterator<Iter, Iter::reference>
-// && OutputIterator<Iter, const T&>
-// && HasEqualTo<Iter::value_type, T>
-// void
-// replace(Iter first, Iter last, const T& old_value, const T& new_value);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- std::replace(Iter(ia), Iter(ia+sa), 2, 5);
- assert(ia[0] == 0);
- assert(ia[1] == 1);
- assert(ia[2] == 5);
- assert(ia[3] == 3);
- assert(ia[4] == 4);
-}
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy.pass.cpp
deleted file mode 100644
index 3c4d0e50817..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy.pass.cpp
+++ /dev/null
@@ -1,72 +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<InputIterator InIter, typename OutIter, class T>
-// requires OutputIterator<OutIter, InIter::reference>
-// && OutputIterator<OutIter, const T&>
-// && HasEqualTo<InIter::value_type, T>
-// OutIter
-// replace_copy(InIter first, InIter last, OutIter result, const T& old_value,
-// const T& new_value);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa] = {0};
- OutIter r = std::replace_copy(InIter(ia), InIter(ia+sa), OutIter(ib), 2, 5);
- assert(base(r) == ib + sa);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 5);
- assert(ib[3] == 3);
- assert(ib[4] == 4);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy_if.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy_if.pass.cpp
deleted file mode 100644
index 1eff3d39e20..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_copy_if.pass.cpp
+++ /dev/null
@@ -1,74 +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<InputIterator InIter, typename OutIter,
-// Predicate<auto, InIter::value_type> Pred, class T>
-// requires OutputIterator<OutIter, InIter::reference>
-// && OutputIterator<OutIter, const T&>
-// && CopyConstructible<Pred>
-// OutIter
-// replace_copy_if(InIter first, InIter last, OutIter result, Pred pred, const T& new_value);
-
-#include <algorithm>
-#include <functional>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa] = {0};
- OutIter r = std::replace_copy_if(InIter(ia), InIter(ia+sa), OutIter(ib),
- std::bind2nd(std::equal_to<int>(), 2), 5);
- assert(base(r) == ib + sa);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 5);
- assert(ib[3] == 3);
- assert(ib[4] == 4);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_if.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_if.pass.cpp
deleted file mode 100644
index 8d6ab04e14d..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.replace/replace_if.pass.cpp
+++ /dev/null
@@ -1,45 +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<ForwardIterator Iter, Predicate<auto, Iter::value_type> Pred, class T>
-// requires OutputIterator<Iter, Iter::reference>
-// && OutputIterator<Iter, const T&>
-// && CopyConstructible<Pred>
-// void
-// replace_if(Iter first, Iter last, Pred pred, const T& new_value);
-
-#include <algorithm>
-#include <functional>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- std::replace_if(Iter(ia), Iter(ia+sa), std::bind2nd(std::equal_to<int>(), 2), 5);
- assert(ia[0] == 0);
- assert(ia[1] == 1);
- assert(ia[2] == 5);
- assert(ia[3] == 3);
- assert(ia[4] == 4);
-}
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp
deleted file mode 100644
index 6c49605b661..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp
+++ /dev/null
@@ -1,60 +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<BidirectionalIterator Iter>
-// requires HasSwap<Iter::reference, Iter::reference>
-// void
-// reverse(Iter first, Iter last);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- std::reverse(Iter(ia), Iter(ia));
- assert(ia[0] == 0);
- std::reverse(Iter(ia), Iter(ia+sa));
- assert(ia[0] == 0);
-
- int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- std::reverse(Iter(ib), Iter(ib+sb));
- assert(ib[0] == 1);
- assert(ib[1] == 0);
-
- int ic[] = {0, 1, 2};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- std::reverse(Iter(ic), Iter(ic+sc));
- assert(ic[0] == 2);
- assert(ic[1] == 1);
- assert(ic[2] == 0);
-
- int id[] = {0, 1, 2, 3};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- std::reverse(Iter(id), Iter(id+sd));
- assert(id[0] == 3);
- assert(id[1] == 2);
- assert(id[2] == 1);
- assert(id[3] == 0);
-}
-
-int main()
-{
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp
deleted file mode 100644
index 70840d187bf..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp
+++ /dev/null
@@ -1,81 +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<BidirectionalIterator InIter, OutputIterator<auto, InIter::reference> OutIter>
-// OutIter
-// reverse_copy(InIter first, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ja[sa] = {-1};
- OutIter r = std::reverse_copy(InIter(ia), InIter(ia), OutIter(ja));
- assert(base(r) == ja);
- assert(ja[0] == -1);
- r = std::reverse_copy(InIter(ia), InIter(ia+sa), OutIter(ja));
- assert(ja[0] == 0);
-
- const int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- int jb[sb] = {-1};
- r = std::reverse_copy(InIter(ib), InIter(ib+sb), OutIter(jb));
- assert(base(r) == jb+sb);
- assert(jb[0] == 1);
- assert(jb[1] == 0);
-
- const int ic[] = {0, 1, 2};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- int jc[sc] = {-1};
- r = std::reverse_copy(InIter(ic), InIter(ic+sc), OutIter(jc));
- assert(base(r) == jc+sc);
- assert(jc[0] == 2);
- assert(jc[1] == 1);
- assert(jc[2] == 0);
-
- int id[] = {0, 1, 2, 3};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- int jd[sd] = {-1};
- r = std::reverse_copy(InIter(id), InIter(id+sd), OutIter(jd));
- assert(base(r) == jd+sd);
- assert(jd[0] == 3);
- assert(jd[1] == 2);
- assert(jd[2] == 1);
- assert(jd[3] == 0);
-}
-
-int main()
-{
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp
deleted file mode 100644
index b7da7354ca2..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp
+++ /dev/null
@@ -1,439 +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<ShuffleIterator Iter>
-// Iter
-// rotate(Iter first, Iter middle, Iter last);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- Iter r = std::rotate(Iter(ia), Iter(ia), Iter(ia));
- assert(base(r) == ia);
- assert(ia[0] == 0);
- r = std::rotate(Iter(ia), Iter(ia), Iter(ia+sa));
- assert(base(r) == ia+sa);
- assert(ia[0] == 0);
- r = std::rotate(Iter(ia), Iter(ia+sa), Iter(ia+sa));
- assert(base(r) == ia);
- assert(ia[0] == 0);
-
- int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- r = std::rotate(Iter(ib), Iter(ib), Iter(ib+sb));
- assert(base(r) == ib+sb);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- r = std::rotate(Iter(ib), Iter(ib+1), Iter(ib+sb));
- assert(base(r) == ib+1);
- assert(ib[0] == 1);
- assert(ib[1] == 0);
- r = std::rotate(Iter(ib), Iter(ib+sb), Iter(ib+sb));
- assert(base(r) == ib);
- assert(ib[0] == 1);
- assert(ib[1] == 0);
-
- int ic[] = {0, 1, 2};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- r = std::rotate(Iter(ic), Iter(ic), Iter(ic+sc));
- assert(base(r) == ic+sc);
- assert(ic[0] == 0);
- assert(ic[1] == 1);
- assert(ic[2] == 2);
- r = std::rotate(Iter(ic), Iter(ic+1), Iter(ic+sc));
- assert(base(r) == ic+2);
- assert(ic[0] == 1);
- assert(ic[1] == 2);
- assert(ic[2] == 0);
- r = std::rotate(Iter(ic), Iter(ic+2), Iter(ic+sc));
- assert(base(r) == ic+1);
- assert(ic[0] == 0);
- assert(ic[1] == 1);
- assert(ic[2] == 2);
- r = std::rotate(Iter(ic), Iter(ic+sc), Iter(ic+sc));
- assert(base(r) == ic);
- assert(ic[0] == 0);
- assert(ic[1] == 1);
- assert(ic[2] == 2);
-
- int id[] = {0, 1, 2, 3};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- r = std::rotate(Iter(id), Iter(id), Iter(id+sd));
- assert(base(r) == id+sd);
- assert(id[0] == 0);
- assert(id[1] == 1);
- assert(id[2] == 2);
- assert(id[3] == 3);
- r = std::rotate(Iter(id), Iter(id+1), Iter(id+sd));
- assert(base(r) == id+3);
- assert(id[0] == 1);
- assert(id[1] == 2);
- assert(id[2] == 3);
- assert(id[3] == 0);
- r = std::rotate(Iter(id), Iter(id+2), Iter(id+sd));
- assert(base(r) == id+2);
- assert(id[0] == 3);
- assert(id[1] == 0);
- assert(id[2] == 1);
- assert(id[3] == 2);
- r = std::rotate(Iter(id), Iter(id+3), Iter(id+sd));
- assert(base(r) == id+1);
- assert(id[0] == 2);
- assert(id[1] == 3);
- assert(id[2] == 0);
- assert(id[3] == 1);
- r = std::rotate(Iter(id), Iter(id+sd), Iter(id+sd));
- assert(base(r) == id);
- assert(id[0] == 2);
- assert(id[1] == 3);
- assert(id[2] == 0);
- assert(id[3] == 1);
-
- int ie[] = {0, 1, 2, 3, 4};
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- r = std::rotate(Iter(ie), Iter(ie), Iter(ie+se));
- assert(base(r) == ie+se);
- assert(ie[0] == 0);
- assert(ie[1] == 1);
- assert(ie[2] == 2);
- assert(ie[3] == 3);
- assert(ie[4] == 4);
- r = std::rotate(Iter(ie), Iter(ie+1), Iter(ie+se));
- assert(base(r) == ie+4);
- assert(ie[0] == 1);
- assert(ie[1] == 2);
- assert(ie[2] == 3);
- assert(ie[3] == 4);
- assert(ie[4] == 0);
- r = std::rotate(Iter(ie), Iter(ie+2), Iter(ie+se));
- assert(base(r) == ie+3);
- assert(ie[0] == 3);
- assert(ie[1] == 4);
- assert(ie[2] == 0);
- assert(ie[3] == 1);
- assert(ie[4] == 2);
- r = std::rotate(Iter(ie), Iter(ie+3), Iter(ie+se));
- assert(base(r) == ie+2);
- assert(ie[0] == 1);
- assert(ie[1] == 2);
- assert(ie[2] == 3);
- assert(ie[3] == 4);
- assert(ie[4] == 0);
- r = std::rotate(Iter(ie), Iter(ie+4), Iter(ie+se));
- assert(base(r) == ie+1);
- assert(ie[0] == 0);
- assert(ie[1] == 1);
- assert(ie[2] == 2);
- assert(ie[3] == 3);
- assert(ie[4] == 4);
- r = std::rotate(Iter(ie), Iter(ie+se), Iter(ie+se));
- assert(base(r) == ie);
- assert(ie[0] == 0);
- assert(ie[1] == 1);
- assert(ie[2] == 2);
- assert(ie[3] == 3);
- assert(ie[4] == 4);
-
- int ig[] = {0, 1, 2, 3, 4, 5};
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- r = std::rotate(Iter(ig), Iter(ig), Iter(ig+sg));
- assert(base(r) == ig+sg);
- assert(ig[0] == 0);
- assert(ig[1] == 1);
- assert(ig[2] == 2);
- assert(ig[3] == 3);
- assert(ig[4] == 4);
- assert(ig[5] == 5);
- r = std::rotate(Iter(ig), Iter(ig+1), Iter(ig+sg));
- assert(base(r) == ig+5);
- assert(ig[0] == 1);
- assert(ig[1] == 2);
- assert(ig[2] == 3);
- assert(ig[3] == 4);
- assert(ig[4] == 5);
- assert(ig[5] == 0);
- r = std::rotate(Iter(ig), Iter(ig+2), Iter(ig+sg));
- assert(base(r) == ig+4);
- assert(ig[0] == 3);
- assert(ig[1] == 4);
- assert(ig[2] == 5);
- assert(ig[3] == 0);
- assert(ig[4] == 1);
- assert(ig[5] == 2);
- r = std::rotate(Iter(ig), Iter(ig+3), Iter(ig+sg));
- assert(base(r) == ig+3);
- assert(ig[0] == 0);
- assert(ig[1] == 1);
- assert(ig[2] == 2);
- assert(ig[3] == 3);
- assert(ig[4] == 4);
- assert(ig[5] == 5);
- r = std::rotate(Iter(ig), Iter(ig+4), Iter(ig+sg));
- assert(base(r) == ig+2);
- assert(ig[0] == 4);
- assert(ig[1] == 5);
- assert(ig[2] == 0);
- assert(ig[3] == 1);
- assert(ig[4] == 2);
- assert(ig[5] == 3);
- r = std::rotate(Iter(ig), Iter(ig+5), Iter(ig+sg));
- assert(base(r) == ig+1);
- assert(ig[0] == 3);
- assert(ig[1] == 4);
- assert(ig[2] == 5);
- assert(ig[3] == 0);
- assert(ig[4] == 1);
- assert(ig[5] == 2);
- r = std::rotate(Iter(ig), Iter(ig+sg), Iter(ig+sg));
- assert(base(r) == ig);
- assert(ig[0] == 3);
- assert(ig[1] == 4);
- assert(ig[2] == 5);
- assert(ig[3] == 0);
- assert(ig[4] == 1);
- assert(ig[5] == 2);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template <class Iter>
-void
-test1()
-{
- std::unique_ptr<int> ia[1];
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- for (int i = 0; i < sa; ++i)
- ia[i].reset(new int(i));
- Iter r = std::rotate(Iter(ia), Iter(ia), Iter(ia));
- assert(base(r) == ia);
- assert(*ia[0] == 0);
- r = std::rotate(Iter(ia), Iter(ia), Iter(ia+sa));
- assert(base(r) == ia+sa);
- assert(*ia[0] == 0);
- r = std::rotate(Iter(ia), Iter(ia+sa), Iter(ia+sa));
- assert(base(r) == ia);
- assert(*ia[0] == 0);
-
- std::unique_ptr<int> ib[2];
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- for (int i = 0; i < sb; ++i)
- ib[i].reset(new int(i));
- r = std::rotate(Iter(ib), Iter(ib), Iter(ib+sb));
- assert(base(r) == ib+sb);
- assert(*ib[0] == 0);
- assert(*ib[1] == 1);
- r = std::rotate(Iter(ib), Iter(ib+1), Iter(ib+sb));
- assert(base(r) == ib+1);
- assert(*ib[0] == 1);
- assert(*ib[1] == 0);
- r = std::rotate(Iter(ib), Iter(ib+sb), Iter(ib+sb));
- assert(base(r) == ib);
- assert(*ib[0] == 1);
- assert(*ib[1] == 0);
-
- std::unique_ptr<int> ic[3];
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- for (int i = 0; i < sc; ++i)
- ic[i].reset(new int(i));
- r = std::rotate(Iter(ic), Iter(ic), Iter(ic+sc));
- assert(base(r) == ic+sc);
- assert(*ic[0] == 0);
- assert(*ic[1] == 1);
- assert(*ic[2] == 2);
- r = std::rotate(Iter(ic), Iter(ic+1), Iter(ic+sc));
- assert(base(r) == ic+2);
- assert(*ic[0] == 1);
- assert(*ic[1] == 2);
- assert(*ic[2] == 0);
- r = std::rotate(Iter(ic), Iter(ic+2), Iter(ic+sc));
- assert(base(r) == ic+1);
- assert(*ic[0] == 0);
- assert(*ic[1] == 1);
- assert(*ic[2] == 2);
- r = std::rotate(Iter(ic), Iter(ic+sc), Iter(ic+sc));
- assert(base(r) == ic);
- assert(*ic[0] == 0);
- assert(*ic[1] == 1);
- assert(*ic[2] == 2);
-
- std::unique_ptr<int> id[4];
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- for (int i = 0; i < sd; ++i)
- id[i].reset(new int(i));
- r = std::rotate(Iter(id), Iter(id), Iter(id+sd));
- assert(base(r) == id+sd);
- assert(*id[0] == 0);
- assert(*id[1] == 1);
- assert(*id[2] == 2);
- assert(*id[3] == 3);
- r = std::rotate(Iter(id), Iter(id+1), Iter(id+sd));
- assert(base(r) == id+3);
- assert(*id[0] == 1);
- assert(*id[1] == 2);
- assert(*id[2] == 3);
- assert(*id[3] == 0);
- r = std::rotate(Iter(id), Iter(id+2), Iter(id+sd));
- assert(base(r) == id+2);
- assert(*id[0] == 3);
- assert(*id[1] == 0);
- assert(*id[2] == 1);
- assert(*id[3] == 2);
- r = std::rotate(Iter(id), Iter(id+3), Iter(id+sd));
- assert(base(r) == id+1);
- assert(*id[0] == 2);
- assert(*id[1] == 3);
- assert(*id[2] == 0);
- assert(*id[3] == 1);
- r = std::rotate(Iter(id), Iter(id+sd), Iter(id+sd));
- assert(base(r) == id);
- assert(*id[0] == 2);
- assert(*id[1] == 3);
- assert(*id[2] == 0);
- assert(*id[3] == 1);
-
- std::unique_ptr<int> ie[5];
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- for (int i = 0; i < se; ++i)
- ie[i].reset(new int(i));
- r = std::rotate(Iter(ie), Iter(ie), Iter(ie+se));
- assert(base(r) == ie+se);
- assert(*ie[0] == 0);
- assert(*ie[1] == 1);
- assert(*ie[2] == 2);
- assert(*ie[3] == 3);
- assert(*ie[4] == 4);
- r = std::rotate(Iter(ie), Iter(ie+1), Iter(ie+se));
- assert(base(r) == ie+4);
- assert(*ie[0] == 1);
- assert(*ie[1] == 2);
- assert(*ie[2] == 3);
- assert(*ie[3] == 4);
- assert(*ie[4] == 0);
- r = std::rotate(Iter(ie), Iter(ie+2), Iter(ie+se));
- assert(base(r) == ie+3);
- assert(*ie[0] == 3);
- assert(*ie[1] == 4);
- assert(*ie[2] == 0);
- assert(*ie[3] == 1);
- assert(*ie[4] == 2);
- r = std::rotate(Iter(ie), Iter(ie+3), Iter(ie+se));
- assert(base(r) == ie+2);
- assert(*ie[0] == 1);
- assert(*ie[1] == 2);
- assert(*ie[2] == 3);
- assert(*ie[3] == 4);
- assert(*ie[4] == 0);
- r = std::rotate(Iter(ie), Iter(ie+4), Iter(ie+se));
- assert(base(r) == ie+1);
- assert(*ie[0] == 0);
- assert(*ie[1] == 1);
- assert(*ie[2] == 2);
- assert(*ie[3] == 3);
- assert(*ie[4] == 4);
- r = std::rotate(Iter(ie), Iter(ie+se), Iter(ie+se));
- assert(base(r) == ie);
- assert(*ie[0] == 0);
- assert(*ie[1] == 1);
- assert(*ie[2] == 2);
- assert(*ie[3] == 3);
- assert(*ie[4] == 4);
-
- std::unique_ptr<int> ig[6];
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- for (int i = 0; i < sg; ++i)
- ig[i].reset(new int(i));
- r = std::rotate(Iter(ig), Iter(ig), Iter(ig+sg));
- assert(base(r) == ig+sg);
- assert(*ig[0] == 0);
- assert(*ig[1] == 1);
- assert(*ig[2] == 2);
- assert(*ig[3] == 3);
- assert(*ig[4] == 4);
- assert(*ig[5] == 5);
- r = std::rotate(Iter(ig), Iter(ig+1), Iter(ig+sg));
- assert(base(r) == ig+5);
- assert(*ig[0] == 1);
- assert(*ig[1] == 2);
- assert(*ig[2] == 3);
- assert(*ig[3] == 4);
- assert(*ig[4] == 5);
- assert(*ig[5] == 0);
- r = std::rotate(Iter(ig), Iter(ig+2), Iter(ig+sg));
- assert(base(r) == ig+4);
- assert(*ig[0] == 3);
- assert(*ig[1] == 4);
- assert(*ig[2] == 5);
- assert(*ig[3] == 0);
- assert(*ig[4] == 1);
- assert(*ig[5] == 2);
- r = std::rotate(Iter(ig), Iter(ig+3), Iter(ig+sg));
- assert(base(r) == ig+3);
- assert(*ig[0] == 0);
- assert(*ig[1] == 1);
- assert(*ig[2] == 2);
- assert(*ig[3] == 3);
- assert(*ig[4] == 4);
- assert(*ig[5] == 5);
- r = std::rotate(Iter(ig), Iter(ig+4), Iter(ig+sg));
- assert(base(r) == ig+2);
- assert(*ig[0] == 4);
- assert(*ig[1] == 5);
- assert(*ig[2] == 0);
- assert(*ig[3] == 1);
- assert(*ig[4] == 2);
- assert(*ig[5] == 3);
- r = std::rotate(Iter(ig), Iter(ig+5), Iter(ig+sg));
- assert(base(r) == ig+1);
- assert(*ig[0] == 3);
- assert(*ig[1] == 4);
- assert(*ig[2] == 5);
- assert(*ig[3] == 0);
- assert(*ig[4] == 1);
- assert(*ig[5] == 2);
- r = std::rotate(Iter(ig), Iter(ig+sg), Iter(ig+sg));
- assert(base(r) == ig);
- assert(*ig[0] == 3);
- assert(*ig[1] == 4);
- assert(*ig[2] == 5);
- assert(*ig[3] == 0);
- assert(*ig[4] == 1);
- assert(*ig[5] == 2);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- test1<forward_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*>();
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp
deleted file mode 100644
index f2ad535a2f9..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.rotate/rotate_copy.pass.cpp
+++ /dev/null
@@ -1,134 +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<ForwardIterator InIter, OutputIterator<auto, InIter::reference> OutIter>
-// OutIter
-// rotate_copy(InIter first, InIter middle, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa] = {0};
-
- OutIter r = std::rotate_copy(InIter(ia), InIter(ia), InIter(ia), OutIter(ib));
- assert(base(r) == ib);
-
- r = std::rotate_copy(InIter(ia), InIter(ia), InIter(ia+1), OutIter(ib));
- assert(base(r) == ib+1);
- assert(ib[0] == 0);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+1), InIter(ia+1), OutIter(ib));
- assert(base(r) == ib+1);
- assert(ib[0] == 0);
-
- r = std::rotate_copy(InIter(ia), InIter(ia), InIter(ia+2), OutIter(ib));
- assert(base(r) == ib+2);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+1), InIter(ia+2), OutIter(ib));
- assert(base(r) == ib+2);
- assert(ib[0] == 1);
- assert(ib[1] == 0);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+2), InIter(ia+2), OutIter(ib));
- assert(base(r) == ib+2);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
-
- r = std::rotate_copy(InIter(ia), InIter(ia), InIter(ia+3), OutIter(ib));
- assert(base(r) == ib+3);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 2);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+1), InIter(ia+3), OutIter(ib));
- assert(base(r) == ib+3);
- assert(ib[0] == 1);
- assert(ib[1] == 2);
- assert(ib[2] == 0);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+2), InIter(ia+3), OutIter(ib));
- assert(base(r) == ib+3);
- assert(ib[0] == 2);
- assert(ib[1] == 0);
- assert(ib[2] == 1);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+3), InIter(ia+3), OutIter(ib));
- assert(base(r) == ib+3);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 2);
-
- r = std::rotate_copy(InIter(ia), InIter(ia), InIter(ia+4), OutIter(ib));
- assert(base(r) == ib+4);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 2);
- assert(ib[3] == 3);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+1), InIter(ia+4), OutIter(ib));
- assert(base(r) == ib+4);
- assert(ib[0] == 1);
- assert(ib[1] == 2);
- assert(ib[2] == 3);
- assert(ib[3] == 0);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+2), InIter(ia+4), OutIter(ib));
- assert(base(r) == ib+4);
- assert(ib[0] == 2);
- assert(ib[1] == 3);
- assert(ib[2] == 0);
- assert(ib[3] == 1);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+3), InIter(ia+4), OutIter(ib));
- assert(base(r) == ib+4);
- assert(ib[0] == 3);
- assert(ib[1] == 0);
- assert(ib[2] == 1);
- assert(ib[3] == 2);
-
- r = std::rotate_copy(InIter(ia), InIter(ia+4), InIter(ia+4), OutIter(ib));
- assert(base(r) == ib+4);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(ib[2] == 2);
- assert(ib[3] == 3);
-}
-
-int main()
-{
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.swap/iter_swap.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.swap/iter_swap.pass.cpp
deleted file mode 100644
index d68efd994bb..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.swap/iter_swap.pass.cpp
+++ /dev/null
@@ -1,27 +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<Iterator Iter1, Iterator Iter2>
-// requires HasSwap<Iter1::reference, Iter2::reference>
-// void
-// iter_swap(Iter1 a, Iter2 b);
-
-#include <algorithm>
-#include <cassert>
-
-int main()
-{
- int i = 1;
- int j = 2;
- std::iter_swap(&i, &j);
- assert(i == 2);
- assert(j == 1);
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpp
deleted file mode 100644
index 24fc47eafc7..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.swap/swap_ranges.pass.cpp
+++ /dev/null
@@ -1,110 +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<ForwardIterator Iter1, ForwardIterator Iter2>
-// requires HasSwap<Iter1::reference, Iter2::reference>
-// Iter2
-// swap_ranges(Iter1 first1, Iter1 last1, Iter2 first2);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-template<class Iter1, class Iter2>
-void
-test()
-{
- int i[3] = {1, 2, 3};
- int j[3] = {4, 5, 6};
- Iter2 r = std::swap_ranges(Iter1(i), Iter1(i+3), Iter2(j));
- assert(base(r) == j+3);
- assert(i[0] == 4);
- assert(i[1] == 5);
- assert(i[2] == 6);
- assert(j[0] == 1);
- assert(j[1] == 2);
- assert(j[2] == 3);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-template<class Iter1, class Iter2>
-void
-test1()
-{
- std::unique_ptr<int> i[3];
- for (int k = 0; k < 3; ++k)
- i[k].reset(new int(k+1));
- std::unique_ptr<int> j[3];
- for (int k = 0; k < 3; ++k)
- j[k].reset(new int(k+4));
- Iter2 r = std::swap_ranges(Iter1(i), Iter1(i+3), Iter2(j));
- assert(base(r) == j+3);
- assert(*i[0] == 4);
- assert(*i[1] == 5);
- assert(*i[2] == 6);
- assert(*j[0] == 1);
- assert(*j[1] == 2);
- assert(*j[2] == 3);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<forward_iterator<int*>, forward_iterator<int*> >();
- test<forward_iterator<int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<int*>, random_access_iterator<int*> >();
- test<forward_iterator<int*>, int*>();
-
- test<bidirectional_iterator<int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<int*>, int*>();
-
- test<random_access_iterator<int*>, forward_iterator<int*> >();
- test<random_access_iterator<int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<int*>, random_access_iterator<int*> >();
- test<random_access_iterator<int*>, int*>();
-
- test<int*, forward_iterator<int*> >();
- test<int*, bidirectional_iterator<int*> >();
- test<int*, random_access_iterator<int*> >();
- test<int*, int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- test1<forward_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<forward_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<bidirectional_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<bidirectional_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<random_access_iterator<std::unique_ptr<int>*>, forward_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, random_access_iterator<std::unique_ptr<int>*> >();
- test1<random_access_iterator<std::unique_ptr<int>*>, std::unique_ptr<int>*>();
-
- test1<std::unique_ptr<int>*, forward_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, bidirectional_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, random_access_iterator<std::unique_ptr<int>*> >();
- test1<std::unique_ptr<int>*, std::unique_ptr<int>*>();
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.transform/binary_transform.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.transform/binary_transform.pass.cpp
deleted file mode 100644
index 8491ea59eff..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.transform/binary_transform.pass.cpp
+++ /dev/null
@@ -1,217 +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<InputIterator InIter1, InputIterator InIter2, class OutIter,
-// Callable<auto, const InIter1::value_type&, const InIter2::value_type&> BinaryOp>
-// requires OutputIterator<OutIter, BinaryOp::result_type> && CopyConstructible<BinaryOp>
-// OutIter
-// transform(InIter1 first1, InIter1 last1, InIter2 first2, OutIter result, BinaryOp binary_op);
-
-#include <algorithm>
-#include <functional>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template<class InIter1, class InIter2, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa] = {1, 2, 3, 4, 5};
- OutIter r = std::transform(InIter1(ib), InIter1(ib+sa), InIter2(ia),
- OutIter(ib), std::minus<int>());
- assert(base(r) == ib + sa);
- assert(ib[0] == 1);
- assert(ib[1] == 1);
- assert(ib[2] == 1);
- assert(ib[3] == 1);
- assert(ib[4] == 1);
-}
-
-int main()
-{
- test<input_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<const int*>, int*>();
-
- test<input_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<const int*>, int*>();
-
- test<input_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<const int*>, int*>();
-
- test<input_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<const int*>, int*>();
-
- test<input_iterator<const int*>, const int*, output_iterator<int*> >();
- test<input_iterator<const int*>, const int*, input_iterator<int*> >();
- test<input_iterator<const int*>, const int*, forward_iterator<int*> >();
- test<input_iterator<const int*>, const int*, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, const int*, random_access_iterator<int*> >();
- test<input_iterator<const int*>, const int*, int*>();
-
- test<forward_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, const int*, output_iterator<int*> >();
- test<forward_iterator<const int*>, const int*, input_iterator<int*> >();
- test<forward_iterator<const int*>, const int*, forward_iterator<int*> >();
- test<forward_iterator<const int*>, const int*, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, const int*, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, const int*, int*>();
-
- test<bidirectional_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, const int*, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, const int*, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, const int*, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, const int*, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, const int*, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, const int*, int*>();
-
- test<random_access_iterator<const int*>, input_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, forward_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, const int*, output_iterator<int*> >();
- test<random_access_iterator<const int*>, const int*, input_iterator<int*> >();
- test<random_access_iterator<const int*>, const int*, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, const int*, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, const int*, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, const int*, int*>();
-
- test<const int*, input_iterator<const int*>, output_iterator<int*> >();
- test<const int*, input_iterator<const int*>, input_iterator<int*> >();
- test<const int*, input_iterator<const int*>, forward_iterator<int*> >();
- test<const int*, input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<const int*, input_iterator<const int*>, random_access_iterator<int*> >();
- test<const int*, input_iterator<const int*>, int*>();
-
- test<const int*, forward_iterator<const int*>, output_iterator<int*> >();
- test<const int*, forward_iterator<const int*>, input_iterator<int*> >();
- test<const int*, forward_iterator<const int*>, forward_iterator<int*> >();
- test<const int*, forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<const int*, forward_iterator<const int*>, random_access_iterator<int*> >();
- test<const int*, forward_iterator<const int*>, int*>();
-
- test<const int*, bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<const int*, bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<const int*, bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<const int*, bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<const int*, bidirectional_iterator<const int*>, int*>();
-
- test<const int*, random_access_iterator<const int*>, output_iterator<int*> >();
- test<const int*, random_access_iterator<const int*>, input_iterator<int*> >();
- test<const int*, random_access_iterator<const int*>, forward_iterator<int*> >();
- test<const int*, random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<const int*, random_access_iterator<const int*>, int*>();
-
- test<const int*, const int*, output_iterator<int*> >();
- test<const int*, const int*, input_iterator<int*> >();
- test<const int*, const int*, forward_iterator<int*> >();
- test<const int*, const int*, bidirectional_iterator<int*> >();
- test<const int*, const int*, random_access_iterator<int*> >();
- test<const int*, const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.transform/unary_transform.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.transform/unary_transform.pass.cpp
deleted file mode 100644
index 68556fd9881..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.transform/unary_transform.pass.cpp
+++ /dev/null
@@ -1,77 +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<InputIterator InIter, class OutIter,
-// Callable<auto, const InIter::value_type&> Op>
-// requires OutputIterator<OutIter, Op::result_type> && CopyConstructible<Op>
-// OutIter
-// transform(InIter first, InIter last, OutIter result, Op op);
-
-#include <algorithm>
-#include <functional>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- int ia[] = {0, 1, 2, 3, 4};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ib[sa] = {0};
- OutIter r = std::transform(InIter(ia), InIter(ia+sa), OutIter(ib),
- std::bind2nd(std::plus<int>(), 1));
- assert(base(r) == ib + sa);
- assert(ib[0] == 1);
- assert(ib[1] == 2);
- assert(ib[2] == 3);
- assert(ib[3] == 4);
- assert(ib[4] == 5);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, input_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, input_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, input_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, input_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, input_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique.pass.cpp
deleted file mode 100644
index ab4ffad60f9..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique.pass.cpp
+++ /dev/null
@@ -1,189 +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<ForwardIterator Iter>
-// requires OutputIterator<Iter, Iter::reference>
-// && EqualityComparable<Iter::value_type>
-// Iter
-// unique(Iter first, Iter last);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- Iter r = std::unique(Iter(ia), Iter(ia+sa));
- assert(base(r) == ia + sa);
- assert(ia[0] == 0);
-
- int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- r = std::unique(Iter(ib), Iter(ib+sb));
- assert(base(r) == ib + sb);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
-
- int ic[] = {0, 0};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- r = std::unique(Iter(ic), Iter(ic+sc));
- assert(base(r) == ic + 1);
- assert(ic[0] == 0);
-
- int id[] = {0, 0, 1};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- r = std::unique(Iter(id), Iter(id+sd));
- assert(base(r) == id + 2);
- assert(id[0] == 0);
- assert(id[1] == 1);
-
- int ie[] = {0, 0, 1, 0};
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- r = std::unique(Iter(ie), Iter(ie+se));
- assert(base(r) == ie + 3);
- assert(ie[0] == 0);
- assert(ie[1] == 1);
- assert(ie[2] == 0);
-
- int ig[] = {0, 0, 1, 1};
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- r = std::unique(Iter(ig), Iter(ig+sg));
- assert(base(r) == ig + 2);
- assert(ig[0] == 0);
- assert(ig[1] == 1);
-
- int ih[] = {0, 1, 1};
- const unsigned sh = sizeof(ih)/sizeof(ih[0]);
- r = std::unique(Iter(ih), Iter(ih+sh));
- assert(base(r) == ih + 2);
- assert(ih[0] == 0);
- assert(ih[1] == 1);
-
- int ii[] = {0, 1, 1, 1, 2, 2, 2};
- const unsigned si = sizeof(ii)/sizeof(ii[0]);
- r = std::unique(Iter(ii), Iter(ii+si));
- assert(base(r) == ii + 3);
- assert(ii[0] == 0);
- assert(ii[1] == 1);
- assert(ii[2] == 2);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-struct do_nothing
-{
- void operator()(void*) const {}
-};
-
-typedef std::unique_ptr<int, do_nothing> Ptr;
-
-template <class Iter>
-void
-test1()
-{
- int one = 1;
- int two = 2;
- Ptr ia[1];
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- Iter r = std::unique(Iter(ia), Iter(ia+sa));
- assert(base(r) == ia + sa);
- assert(ia[0] == 0);
-
- Ptr ib[2];
- ib[1].reset(&one);
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- r = std::unique(Iter(ib), Iter(ib+sb));
- assert(base(r) == ib + sb);
- assert(ib[0] == 0);
- assert(*ib[1] == 1);
-
- Ptr ic[2];
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- r = std::unique(Iter(ic), Iter(ic+sc));
- assert(base(r) == ic + 1);
- assert(ic[0] == 0);
-
- Ptr id[3];
- id[2].reset(&one);
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- r = std::unique(Iter(id), Iter(id+sd));
- assert(base(r) == id + 2);
- assert(id[0] == 0);
- assert(*id[1] == 1);
-
- Ptr ie[4];
- ie[2].reset(&one);
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- r = std::unique(Iter(ie), Iter(ie+se));
- assert(base(r) == ie + 3);
- assert(ie[0] == 0);
- assert(*ie[1] == 1);
- assert(ie[2] == 0);
-
- Ptr ig[4];
- ig[2].reset(&one);
- ig[3].reset(&one);
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- r = std::unique(Iter(ig), Iter(ig+sg));
- assert(base(r) == ig + 2);
- assert(ig[0] == 0);
- assert(*ig[1] == 1);
-
- Ptr ih[3];
- ih[1].reset(&one);
- ih[2].reset(&one);
- const unsigned sh = sizeof(ih)/sizeof(ih[0]);
- r = std::unique(Iter(ih), Iter(ih+sh));
- assert(base(r) == ih + 2);
- assert(ih[0] == 0);
- assert(*ih[1] == 1);
-
- Ptr ii[7];
- ii[1].reset(&one);
- ii[2].reset(&one);
- ii[3].reset(&one);
- ii[4].reset(&two);
- ii[5].reset(&two);
- ii[6].reset(&two);
- const unsigned si = sizeof(ii)/sizeof(ii[0]);
- r = std::unique(Iter(ii), Iter(ii+si));
- assert(base(r) == ii + 3);
- assert(ii[0] == 0);
- assert(*ii[1] == 1);
- assert(*ii[2] == 2);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- test1<forward_iterator<Ptr*> >();
- test1<bidirectional_iterator<Ptr*> >();
- test1<random_access_iterator<Ptr*> >();
- test1<Ptr*>();
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy.pass.cpp
deleted file mode 100644
index 761dad4ecd0..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy.pass.cpp
+++ /dev/null
@@ -1,125 +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<InputIterator InIter, class OutIter>
-// requires OutputIterator<OutIter, RvalueOf<InIter::value_type>::type>
-// && EqualityComparable<InIter::value_type>
-// && HasAssign<InIter::value_type, InIter::reference>
-// && Constructible<InIter::value_type, InIter::reference>
-// OutIter
-// unique_copy(InIter first, InIter last, OutIter result);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ja[sa] = {-1};
- OutIter r = std::unique_copy(InIter(ia), InIter(ia+sa), OutIter(ja));
- assert(base(r) == ja + sa);
- assert(ja[0] == 0);
-
- const int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- int jb[sb] = {-1};
- r = std::unique_copy(InIter(ib), InIter(ib+sb), OutIter(jb));
- assert(base(r) == jb + sb);
- assert(jb[0] == 0);
- assert(jb[1] == 1);
-
- const int ic[] = {0, 0};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- int jc[sc] = {-1};
- r = std::unique_copy(InIter(ic), InIter(ic+sc), OutIter(jc));
- assert(base(r) == jc + 1);
- assert(jc[0] == 0);
-
- const int id[] = {0, 0, 1};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- int jd[sd] = {-1};
- r = std::unique_copy(InIter(id), InIter(id+sd), OutIter(jd));
- assert(base(r) == jd + 2);
- assert(jd[0] == 0);
- assert(jd[1] == 1);
-
- const int ie[] = {0, 0, 1, 0};
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- int je[se] = {-1};
- r = std::unique_copy(InIter(ie), InIter(ie+se), OutIter(je));
- assert(base(r) == je + 3);
- assert(je[0] == 0);
- assert(je[1] == 1);
- assert(je[2] == 0);
-
- const int ig[] = {0, 0, 1, 1};
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- int jg[sg] = {-1};
- r = std::unique_copy(InIter(ig), InIter(ig+sg), OutIter(jg));
- assert(base(r) == jg + 2);
- assert(jg[0] == 0);
- assert(jg[1] == 1);
-
- const int ih[] = {0, 1, 1};
- const unsigned sh = sizeof(ih)/sizeof(ih[0]);
- int jh[sh] = {-1};
- r = std::unique_copy(InIter(ih), InIter(ih+sh), OutIter(jh));
- assert(base(r) == jh + 2);
- assert(jh[0] == 0);
- assert(jh[1] == 1);
-
- const int ii[] = {0, 1, 1, 1, 2, 2, 2};
- const unsigned si = sizeof(ii)/sizeof(ii[0]);
- int ji[si] = {-1};
- r = std::unique_copy(InIter(ii), InIter(ii+si), OutIter(ji));
- assert(base(r) == ji + 3);
- assert(ji[0] == 0);
- assert(ji[1] == 1);
- assert(ji[2] == 2);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy_pred.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy_pred.pass.cpp
deleted file mode 100644
index 6819899a114..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_copy_pred.pass.cpp
+++ /dev/null
@@ -1,152 +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<InputIterator InIter, class OutIter,
-// EquivalenceRelation<auto, InIter::value_type> Pred>
-// requires OutputIterator<OutIter, RvalueOf<InIter::value_type>::type>
-// && HasAssign<InIter::value_type, InIter::reference>
-// && Constructible<InIter::value_type, InIter::reference>
-// && CopyConstructible<Pred>
-// OutIter
-// unique_copy(InIter first, InIter last, OutIter result, Pred pred);
-
-#include <algorithm>
-#include <cassert>
-
-#include "test_iterators.h"
-
-struct count_equal
-{
- static unsigned count;
- template <class T>
- bool operator()(const T& x, const T& y)
- {++count; return x == y;}
-};
-
-unsigned count_equal::count = 0;
-
-template <class InIter, class OutIter>
-void
-test()
-{
- const int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- int ja[sa] = {-1};
- count_equal::count = 0;
- OutIter r = std::unique_copy(InIter(ia), InIter(ia+sa), OutIter(ja), count_equal());
- assert(base(r) == ja + sa);
- assert(ja[0] == 0);
- assert(count_equal::count == sa-1);
-
- const int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- int jb[sb] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(ib), InIter(ib+sb), OutIter(jb), count_equal());
- assert(base(r) == jb + sb);
- assert(jb[0] == 0);
- assert(jb[1] == 1);
- assert(count_equal::count == sb-1);
-
- const int ic[] = {0, 0};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- int jc[sc] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(ic), InIter(ic+sc), OutIter(jc), count_equal());
- assert(base(r) == jc + 1);
- assert(jc[0] == 0);
- assert(count_equal::count == sc-1);
-
- const int id[] = {0, 0, 1};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- int jd[sd] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(id), InIter(id+sd), OutIter(jd), count_equal());
- assert(base(r) == jd + 2);
- assert(jd[0] == 0);
- assert(jd[1] == 1);
- assert(count_equal::count == sd-1);
-
- const int ie[] = {0, 0, 1, 0};
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- int je[se] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(ie), InIter(ie+se), OutIter(je), count_equal());
- assert(base(r) == je + 3);
- assert(je[0] == 0);
- assert(je[1] == 1);
- assert(je[2] == 0);
- assert(count_equal::count == se-1);
-
- const int ig[] = {0, 0, 1, 1};
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- int jg[sg] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(ig), InIter(ig+sg), OutIter(jg), count_equal());
- assert(base(r) == jg + 2);
- assert(jg[0] == 0);
- assert(jg[1] == 1);
- assert(count_equal::count == sg-1);
-
- const int ih[] = {0, 1, 1};
- const unsigned sh = sizeof(ih)/sizeof(ih[0]);
- int jh[sh] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(ih), InIter(ih+sh), OutIter(jh), count_equal());
- assert(base(r) == jh + 2);
- assert(jh[0] == 0);
- assert(jh[1] == 1);
- assert(count_equal::count == sh-1);
-
- const int ii[] = {0, 1, 1, 1, 2, 2, 2};
- const unsigned si = sizeof(ii)/sizeof(ii[0]);
- int ji[si] = {-1};
- count_equal::count = 0;
- r = std::unique_copy(InIter(ii), InIter(ii+si), OutIter(ji), count_equal());
- assert(base(r) == ji + 3);
- assert(ji[0] == 0);
- assert(ji[1] == 1);
- assert(ji[2] == 2);
- assert(count_equal::count == si-1);
-}
-
-int main()
-{
- test<input_iterator<const int*>, output_iterator<int*> >();
- test<input_iterator<const int*>, forward_iterator<int*> >();
- test<input_iterator<const int*>, bidirectional_iterator<int*> >();
- test<input_iterator<const int*>, random_access_iterator<int*> >();
- test<input_iterator<const int*>, int*>();
-
- test<forward_iterator<const int*>, output_iterator<int*> >();
- test<forward_iterator<const int*>, forward_iterator<int*> >();
- test<forward_iterator<const int*>, bidirectional_iterator<int*> >();
- test<forward_iterator<const int*>, random_access_iterator<int*> >();
- test<forward_iterator<const int*>, int*>();
-
- test<bidirectional_iterator<const int*>, output_iterator<int*> >();
- test<bidirectional_iterator<const int*>, forward_iterator<int*> >();
- test<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
- test<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
- test<bidirectional_iterator<const int*>, int*>();
-
- test<random_access_iterator<const int*>, output_iterator<int*> >();
- test<random_access_iterator<const int*>, forward_iterator<int*> >();
- test<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
- test<random_access_iterator<const int*>, random_access_iterator<int*> >();
- test<random_access_iterator<const int*>, int*>();
-
- test<const int*, output_iterator<int*> >();
- test<const int*, forward_iterator<int*> >();
- test<const int*, bidirectional_iterator<int*> >();
- test<const int*, random_access_iterator<int*> >();
- test<const int*, int*>();
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_pred.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_pred.pass.cpp
deleted file mode 100644
index c6df235bed6..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/alg.unique/unique_pred.pass.cpp
+++ /dev/null
@@ -1,231 +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<ForwardIterator Iter, EquivalenceRelation<auto, Iter::value_type> Pred>
-// requires OutputIterator<Iter, RvalueOf<Iter::reference>::type>
-// && CopyConstructible<Pred>
-// Iter
-// unique(Iter first, Iter last, Pred pred);
-
-#include <algorithm>
-#include <cassert>
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-#include <memory>
-#endif
-
-#include "test_iterators.h"
-
-struct count_equal
-{
- static unsigned count;
- template <class T>
- bool operator()(const T& x, const T& y)
- {++count; return x == y;}
-};
-
-unsigned count_equal::count = 0;
-
-template <class Iter>
-void
-test()
-{
- int ia[] = {0};
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- count_equal::count = 0;
- Iter r = std::unique(Iter(ia), Iter(ia+sa), count_equal());
- assert(base(r) == ia + sa);
- assert(ia[0] == 0);
- assert(count_equal::count == sa-1);
-
- int ib[] = {0, 1};
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ib), Iter(ib+sb), count_equal());
- assert(base(r) == ib + sb);
- assert(ib[0] == 0);
- assert(ib[1] == 1);
- assert(count_equal::count == sb-1);
-
- int ic[] = {0, 0};
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ic), Iter(ic+sc), count_equal());
- assert(base(r) == ic + 1);
- assert(ic[0] == 0);
- assert(count_equal::count == sc-1);
-
- int id[] = {0, 0, 1};
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- count_equal::count = 0;
- r = std::unique(Iter(id), Iter(id+sd), count_equal());
- assert(base(r) == id + 2);
- assert(id[0] == 0);
- assert(id[1] == 1);
- assert(count_equal::count == sd-1);
-
- int ie[] = {0, 0, 1, 0};
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ie), Iter(ie+se), count_equal());
- assert(base(r) == ie + 3);
- assert(ie[0] == 0);
- assert(ie[1] == 1);
- assert(ie[2] == 0);
- assert(count_equal::count == se-1);
-
- int ig[] = {0, 0, 1, 1};
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ig), Iter(ig+sg), count_equal());
- assert(base(r) == ig + 2);
- assert(ig[0] == 0);
- assert(ig[1] == 1);
- assert(count_equal::count == sg-1);
-
- int ih[] = {0, 1, 1};
- const unsigned sh = sizeof(ih)/sizeof(ih[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ih), Iter(ih+sh), count_equal());
- assert(base(r) == ih + 2);
- assert(ih[0] == 0);
- assert(ih[1] == 1);
- assert(count_equal::count == sh-1);
-
- int ii[] = {0, 1, 1, 1, 2, 2, 2};
- const unsigned si = sizeof(ii)/sizeof(ii[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ii), Iter(ii+si), count_equal());
- assert(base(r) == ii + 3);
- assert(ii[0] == 0);
- assert(ii[1] == 1);
- assert(ii[2] == 2);
- assert(count_equal::count == si-1);
-}
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-struct do_nothing
-{
- void operator()(void*) const {}
-};
-
-typedef std::unique_ptr<int, do_nothing> Ptr;
-
-template <class Iter>
-void
-test1()
-{
- int one = 1;
- int two = 2;
- Ptr ia[1];
- const unsigned sa = sizeof(ia)/sizeof(ia[0]);
- count_equal::count = 0;
- Iter r = std::unique(Iter(ia), Iter(ia+sa), count_equal());
- assert(base(r) == ia + sa);
- assert(ia[0] == 0);
- assert(count_equal::count == sa-1);
-
- Ptr ib[2];
- ib[1].reset(&one);
- const unsigned sb = sizeof(ib)/sizeof(ib[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ib), Iter(ib+sb), count_equal());
- assert(base(r) == ib + sb);
- assert(ib[0] == 0);
- assert(*ib[1] == 1);
- assert(count_equal::count == sb-1);
-
- Ptr ic[2];
- const unsigned sc = sizeof(ic)/sizeof(ic[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ic), Iter(ic+sc), count_equal());
- assert(base(r) == ic + 1);
- assert(ic[0] == 0);
- assert(count_equal::count == sc-1);
-
- Ptr id[3];
- id[2].reset(&one);
- const unsigned sd = sizeof(id)/sizeof(id[0]);
- count_equal::count = 0;
- r = std::unique(Iter(id), Iter(id+sd), count_equal());
- assert(base(r) == id + 2);
- assert(id[0] == 0);
- assert(*id[1] == 1);
- assert(count_equal::count == sd-1);
-
- Ptr ie[4];
- ie[2].reset(&one);
- const unsigned se = sizeof(ie)/sizeof(ie[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ie), Iter(ie+se), count_equal());
- assert(base(r) == ie + 3);
- assert(ie[0] == 0);
- assert(*ie[1] == 1);
- assert(ie[2] == 0);
- assert(count_equal::count == se-1);
-
- Ptr ig[4];
- ig[2].reset(&one);
- ig[3].reset(&one);
- const unsigned sg = sizeof(ig)/sizeof(ig[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ig), Iter(ig+sg), count_equal());
- assert(base(r) == ig + 2);
- assert(ig[0] == 0);
- assert(*ig[1] == 1);
- assert(count_equal::count == sg-1);
-
- Ptr ih[3];
- ih[1].reset(&one);
- ih[2].reset(&one);
- const unsigned sh = sizeof(ih)/sizeof(ih[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ih), Iter(ih+sh), count_equal());
- assert(base(r) == ih + 2);
- assert(ih[0] == 0);
- assert(*ih[1] == 1);
- assert(count_equal::count == sh-1);
-
- Ptr ii[7];
- ii[1].reset(&one);
- ii[2].reset(&one);
- ii[3].reset(&one);
- ii[4].reset(&two);
- ii[5].reset(&two);
- ii[6].reset(&two);
- const unsigned si = sizeof(ii)/sizeof(ii[0]);
- count_equal::count = 0;
- r = std::unique(Iter(ii), Iter(ii+si), count_equal());
- assert(base(r) == ii + 3);
- assert(ii[0] == 0);
- assert(*ii[1] == 1);
- assert(*ii[2] == 2);
- assert(count_equal::count == si-1);
-}
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
-int main()
-{
- test<forward_iterator<int*> >();
- test<bidirectional_iterator<int*> >();
- test<random_access_iterator<int*> >();
- test<int*>();
-
-#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-
- test1<forward_iterator<Ptr*> >();
- test1<bidirectional_iterator<Ptr*> >();
- test1<random_access_iterator<Ptr*> >();
- test1<Ptr*>();
-
-#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-}
diff --git a/libcxx/test/algorithms/alg.modifying.operations/nothing_to_do.pass.cpp b/libcxx/test/algorithms/alg.modifying.operations/nothing_to_do.pass.cpp
deleted file mode 100644
index b58f5c55b64..00000000000
--- a/libcxx/test/algorithms/alg.modifying.operations/nothing_to_do.pass.cpp
+++ /dev/null
@@ -1,12 +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.
-//
-//===----------------------------------------------------------------------===//
-
-int main()
-{
-}
OpenPOWER on IntegriCloud