Author: marshall
Date: Fri Apr 25 10:50:54 2014
New Revision: 207232
URL: http://llvm.org/viewvc/llvm-project?rev=207232&view=rev
Log:
Added some tests for equal elements in min_element and max_element. Bug #19547
was invalid, but we weren't testing that case
Modified:
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp
Modified:
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp
URL:
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp?rev=207232&r1=207231&r2=207232&view=diff
==============================================================================
---
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp
(original)
+++
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp
Fri Apr 25 10:50:54 2014
@@ -58,10 +58,28 @@ test()
test<Iter>(1000);
}
+template <class Iter, class Pred>
+void test_eq0(Iter first, Iter last, Pred p)
+{
+ assert(first == std::max_element(first, last, p));
+}
+
+void test_eq()
+{
+ const size_t N = 10;
+ int* a = new int[N];
+ for (int i = 0; i < N; ++i)
+ a[i] = 10; // all the same
+ test_eq0(a, a+N, std::less<int>());
+ test_eq0(a, a+N, std::greater<int>());
+ delete [] a;
+}
+
int main()
{
test<forward_iterator<const int*> >();
test<bidirectional_iterator<const int*> >();
test<random_access_iterator<const int*> >();
test<const int*>();
+ test_eq();
}
Modified:
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp
URL:
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp?rev=207232&r1=207231&r2=207232&view=diff
==============================================================================
---
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp
(original)
+++
libcxx/trunk/test/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp
Fri Apr 25 10:50:54 2014
@@ -58,10 +58,28 @@ test()
test<Iter>(1000);
}
+template <class Iter, class Pred>
+void test_eq0(Iter first, Iter last, Pred p)
+{
+ assert(first == std::min_element(first, last, p));
+}
+
+void test_eq()
+{
+ const size_t N = 10;
+ int* a = new int[N];
+ for (int i = 0; i < N; ++i)
+ a[i] = 10; // all the same
+ test_eq0(a, a+N, std::less<int>());
+ test_eq0(a, a+N, std::greater<int>());
+ delete [] a;
+}
+
int main()
{
test<forward_iterator<const int*> >();
test<bidirectional_iterator<const int*> >();
test<random_access_iterator<const int*> >();
test<const int*>();
+ test_eq();
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits