File: Relation.h

package info (click to toggle)
0ad 0.0.17-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 51,248 kB
  • ctags: 46,933
  • sloc: cpp: 223,208; ansic: 31,240; python: 16,343; perl: 4,083; sh: 1,011; makefile: 915; xml: 733; java: 621; ruby: 229; erlang: 53; sql: 40
file content (41 lines) | stat: -rw-r--r-- 1,060 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <cxxtest/TestSuite.h>

struct MyNegative
{
    bool operator()(const int &i) const { return i < 0; }
};

template<class T>
struct MyLess
{
    bool operator()(const T &x, const T &y) const { return x < y; }
};

class Relation : public CxxTest::TestSuite
{
public:
    void testPredicate()
    {
        TS_ASSERT_PREDICATE(MyNegative, 1);
        TSM_ASSERT_PREDICATE("1 <? 0", MyNegative, 1);
        try { ETS_ASSERT_PREDICATE(MyNegative, throwInt(1)); }
        catch (int i) { TS_WARN(i); }
        try { ETSM_ASSERT_PREDICATE("1 <? 0", MyNegative, throwInt(1)); }
        catch (int i) { TS_WARN(i); }
    }

    void testRelation()
    {
        TS_ASSERT_RELATION(MyLess<int>, 2, 1);
        TSM_ASSERT_RELATION("2 <? 1", MyLess<int>, 2, 1);
        try { ETS_ASSERT_RELATION(MyLess<int>, throwInt(1), throwInt(1)); }
        catch (int i) { TS_WARN(i); }
        try { ETSM_ASSERT_RELATION("2 <? 1", MyLess<int>, throwInt(1), throwInt(1)); }
        catch (int i) { TS_WARN(i); }
    }

    int throwInt(int i)
    {
        throw i;
    }
};