1 #include <algorithm>
2 #include "unary.h"
3
4 #include "cppunit/cppunit_proxy.h"
5
6 #if defined(_STLP_USE_NAMESPACES)
7 using namespace std;
8 #endif
9
10 //
11 // TestCase class
12 //
13 class 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
23 protected:
24 void bcompos1();
25 void bcompos2();
26 };
27
28 CPPUNIT_TEST_SUITE_REGISTRATION(BcomposTest);
29
30 //
31 // tests implementation
32 //
bcompos1()33 void 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
bcompos2()46 void 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