forked from OSchip/llvm-project
Update the algorithm tests to not use the (deprecated) function binders. No functional change.
llvm-svn: 298618
This commit is contained in:
parent
c3e9c1442d
commit
315cd1fec9
|
@ -21,6 +21,8 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
bool equalToTwo(int v) { return v == 2; }
|
||||
|
||||
template <class InIter, class OutIter>
|
||||
void
|
||||
test()
|
||||
|
@ -28,8 +30,8 @@ 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));
|
||||
OutIter r = std::remove_copy_if(InIter(ia), InIter(ia+sa),
|
||||
OutIter(ib), equalToTwo);
|
||||
assert(base(r) == ib + sa-3);
|
||||
assert(ib[0] == 0);
|
||||
assert(ib[1] == 1);
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
bool equalToTwo(int v) { return v == 2; }
|
||||
|
||||
template <class InIter, class OutIter>
|
||||
void
|
||||
test()
|
||||
|
@ -30,8 +32,8 @@ 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);
|
||||
OutIter r = std::replace_copy_if(InIter(ia), InIter(ia+sa),
|
||||
OutIter(ib), equalToTwo, 5);
|
||||
assert(base(r) == ib + sa);
|
||||
assert(ib[0] == 0);
|
||||
assert(ib[1] == 1);
|
||||
|
|
|
@ -22,13 +22,15 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
bool equalToTwo(int v) { return v == 2; }
|
||||
|
||||
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);
|
||||
std::replace_if(Iter(ia), Iter(ia+sa), equalToTwo, 5);
|
||||
assert(ia[0] == 0);
|
||||
assert(ia[1] == 1);
|
||||
assert(ia[2] == 5);
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
int plusOne(int v) { return v + 1; }
|
||||
|
||||
template <class InIter, class OutIter>
|
||||
void
|
||||
test()
|
||||
|
@ -28,8 +30,8 @@ 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));
|
||||
OutIter r = std::transform(InIter(ia), InIter(ia+sa),
|
||||
OutIter(ib), plusOne);
|
||||
assert(base(r) == ib + sa);
|
||||
assert(ib[0] == 1);
|
||||
assert(ib[1] == 2);
|
||||
|
|
|
@ -20,17 +20,24 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
struct eq {
|
||||
eq (int val) : v(val) {}
|
||||
bool operator () (int v2) const { return v == v2; }
|
||||
int v;
|
||||
};
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
int ia[] = {0, 1, 2, 2, 0, 1, 2, 3};
|
||||
const unsigned sa = sizeof(ia)/sizeof(ia[0]);
|
||||
assert(std::count_if(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia + sa),
|
||||
std::bind2nd(std::equal_to<int>(),2)) == 3);
|
||||
eq(2)) == 3);
|
||||
assert(std::count_if(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia + sa),
|
||||
std::bind2nd(std::equal_to<int>(),7)) == 0);
|
||||
eq(7)) == 0);
|
||||
assert(std::count_if(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia),
|
||||
std::bind2nd(std::equal_to<int>(),2)) == 0);
|
||||
eq(2)) == 0);
|
||||
}
|
||||
|
|
|
@ -20,16 +20,22 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
struct eq {
|
||||
eq (int val) : v(val) {}
|
||||
bool operator () (int v2) const { return v == v2; }
|
||||
int v;
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
int ia[] = {0, 1, 2, 3, 4, 5};
|
||||
const unsigned s = sizeof(ia)/sizeof(ia[0]);
|
||||
input_iterator<const int*> r = std::find_if(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia+s),
|
||||
std::bind2nd(std::equal_to<int>(), 3));
|
||||
eq(3));
|
||||
assert(*r == 3);
|
||||
r = std::find_if(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia+s),
|
||||
std::bind2nd(std::equal_to<int>(), 10));
|
||||
eq(10));
|
||||
assert(r == input_iterator<const int*>(ia+s));
|
||||
}
|
||||
|
|
|
@ -20,16 +20,23 @@
|
|||
|
||||
#include "test_iterators.h"
|
||||
|
||||
struct ne {
|
||||
ne (int val) : v(val) {}
|
||||
bool operator () (int v2) const { return v != v2; }
|
||||
int v;
|
||||
};
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
int ia[] = {0, 1, 2, 3, 4, 5};
|
||||
const unsigned s = sizeof(ia)/sizeof(ia[0]);
|
||||
input_iterator<const int*> r = std::find_if_not(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia+s),
|
||||
std::bind2nd(std::not_equal_to<int>(), 3));
|
||||
ne(3));
|
||||
assert(*r == 3);
|
||||
r = std::find_if_not(input_iterator<const int*>(ia),
|
||||
input_iterator<const int*>(ia+s),
|
||||
std::bind2nd(std::not_equal_to<int>(), 10));
|
||||
ne(10));
|
||||
assert(r == input_iterator<const int*>(ia+s));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue