1#include <algorithm>
2#include "unary.h"
3
4#include "cppunit/cppunit_proxy.h"
5
6#if defined(_STLP_USE_NAMESPACES)
7using namespace std;
8#endif
9
10//
11// TestCase class
12//
13class BcomposTest : public CPPUNIT_NS::TestCase
14{
15  CPPUNIT_TEST_SUITE(BcomposTest);
16#if !defined (STLPORT) || defined (_STLP_NO_EXTENSIONS)
17  CPPUNIT_IGNORE;
18#endif
19  CPPUNIT_TEST(bcompos1);
20  CPPUNIT_TEST(bcompos2);
21  CPPUNIT_TEST_SUITE_END();
22
23protected:
24  void bcompos1();
25  void bcompos2();
26};
27
28CPPUNIT_TEST_SUITE_REGISTRATION(BcomposTest);
29
30//
31// tests implementation
32//
33void BcomposTest::bcompos1()
34{
35#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)
36  int array [6] = { -2, -1, 0, 1, 2, 3 };
37
38  binary_compose<logical_and<bool>, odd, positive>
39  b = binary_compose<logical_and<bool>, odd, positive>(logical_and<bool>(), odd(), positive());
40
41  int* p = find_if((int*)array, (int*)array + 6, b);
42  CPPUNIT_ASSERT(p != array + 6);
43#endif
44}
45
46void BcomposTest::bcompos2()
47{
48#if defined (STLPORT) && !defined (_STLP_NO_EXTENSIONS)
49  int array [6] = { -2, -1 , 0, 1, 2, 3 };
50
51  int* p = find_if((int*)array, (int*)array + 6,
52  compose2(logical_and<bool>(), odd(), positive()));
53  CPPUNIT_ASSERT(p != array + 6);
54#endif
55}
56