Operators with std::string
[libacl.git] / test / superstring_compare.cpp
1 /*******************************************************
2  *  Unit test for the SuperString class
3  *
4  * test relational operators
5  ******************************************************
6  *
7  */
8
9 #include "String.h"
10 #include <assert.h>
11
12 void print_ss(SuperString ss)
13 {
14    std::cout << "[";
15    for (int i = 0; i < ~ss; i++)
16    {
17       if (i != 0)
18          std::cout << ",";
19       std::cout << "\"" << ss[i] << "\"";
20    }
21    std::cout << "]";
22 }
23
24 int main()
25 {
26    String s1("abcdef");
27    String s2("abcdef");
28    String s3("vwuxyz");
29
30    SuperString ss1(s1);
31    SuperString ss2(s2);
32    SuperString ss3(s3);
33
34    print_ss(ss1);
35    std::cout << " == ";
36    print_ss(ss2);
37    std::cout << " = " << (ss1 == ss2)  << "\n";
38    assert((ss1 == ss2) == true);
39
40    print_ss(ss1);
41    std::cout << " == ";
42    print_ss(ss3);
43    std::cout << " = " << (ss1 == ss3)  << "\n";
44    assert((ss1 == ss3) == false);
45
46    print_ss(ss1);
47    std::cout << " != ";
48    print_ss(ss2);
49    std::cout << " = " << (ss1 != ss2)  << "\n";
50    assert((ss1 != ss2) == false);
51
52    print_ss(ss1);
53    std::cout << " != ";
54    print_ss(ss3);
55    std::cout << " = " << (ss1 != ss3)  << "\n";
56    assert((ss1 != ss3) == true);
57
58    print_ss(ss1);
59    std::cout << " < ";
60    print_ss(ss2);
61    std::cout << " = " << (ss1 < ss2)  << "\n";
62    assert((ss1 < ss2) == false);
63
64    print_ss(ss1);
65    std::cout << " < ";
66    print_ss(ss3);
67    std::cout << " = " << (ss1 < ss3)  << "\n";
68    assert((ss1 < ss3) == true);
69
70    print_ss(ss3);
71    std::cout << " < ";
72    print_ss(ss1);
73    std::cout << " = " << (ss3 < ss1)  << "\n";
74    assert((ss3 < ss1) == false);
75
76    print_ss(ss1);
77    std::cout << " > ";
78    print_ss(ss2);
79    std::cout << " = " << (ss1 > ss2)  << "\n";
80    assert((ss1 > ss2) == false);
81
82    print_ss(ss1);
83    std::cout << " > ";
84    print_ss(ss3);
85    std::cout << " = " << (ss1 > ss3)  << "\n";
86    assert((ss1 > ss3) == false);
87
88    print_ss(ss3);
89    std::cout << " > ";
90    print_ss(ss1);
91    std::cout << " = " << (ss3 > ss1)  << "\n";
92    assert((ss3 > ss1) == true);
93
94    print_ss(ss1);
95    std::cout << " <= ";
96    print_ss(ss2);
97    std::cout << " = " << (ss1 <= ss2)  << "\n";
98    assert((ss1 <= ss2) == true);
99
100    print_ss(ss1);
101    std::cout << " <= ";
102    print_ss(ss3);
103    std::cout << " = " << (ss1 <= ss3)  << "\n";
104    assert((ss1 <= ss3) == true);
105
106    print_ss(ss3);
107    std::cout << " <= ";
108    print_ss(ss1);
109    std::cout << " = " << (ss3 <= ss1)  << "\n";
110    assert((ss3 <= ss1) == false);
111
112    print_ss(ss1);
113    std::cout << " >= ";
114    print_ss(ss2);
115    std::cout << " = " << (ss1 >= ss2)  << "\n";
116    assert((ss1 >= ss2) == true);
117
118    print_ss(ss1);
119    std::cout << " >= ";
120    print_ss(ss3);
121    std::cout << " = " << (ss1 >= ss3)  << "\n";
122    assert((ss1 >= ss3) == false);
123
124    print_ss(ss3);
125    std::cout << " >= ";
126    print_ss(ss1);
127    std::cout << " = " << (ss3 >= ss1)  << "\n";
128    assert((ss3 >= ss1) == true);
129
130
131    return 0;
132 }
133