Compare and string catenation test cases
[libacl.git] / test / string_compare.cpp
1 /*******************************************************
2  *  Unit test for the String class
3  *
4  * test relational operators
5  ******************************************************
6  *
7  */
8
9 #include "String.h"
10 #include <assert.h>
11
12 int main()
13 {
14    // Default contructor: empty string
15    String s0;
16
17    String s1("abcdef");
18    String s2("abcdef");
19    String s3("vwuxyz");
20
21    std::cout << s1 << " == " << s2 << " = " << (s1 == s2)  << "\n";
22    assert((s1 == s2) == true);
23    std::cout << s1 << " == " << s3 << " = " << (s1 == s3)  << "\n";
24    assert((s1 == s3) == false);
25
26    std::cout << s1 << " != " << s2 << " = " << (s1 != s2)  << "\n";
27    assert((s1 != s2) == false);
28    std::cout << s1 << " != " << s3 << " = " << (s1 != s3)  << "\n";
29    assert((s1 != s3) == true);
30
31    std::cout << s1 << " <  " << s2 << " = " << (s1 < s2)  << "\n";
32    assert((s1 < s2) == false);
33    std::cout << s1 << " <  " << s3 << " = " << (s1 < s3)  << "\n";
34    assert((s1 < s3) == true);
35    std::cout << s3 << " <  " << s1 << " = " << (s3 < s1)  << "\n";
36    assert((s3 < s1) == false);
37
38    std::cout << s1 << " >  " << s2 << " = " << (s1 > s2)  << "\n";
39    assert((s1 > s2) == false);
40    std::cout << s1 << " >  " << s3 << " = " << (s1 > s3)  << "\n";
41    assert((s1 > s3) == false);
42    std::cout << s3 << " >  " << s1 << " = " << (s3 > s1)  << "\n";
43    assert((s3 > s1) == true);
44
45    std::cout << s1 << " <= " << s2 << " = " << (s1 <= s2)  << "\n";
46    assert((s1 <= s2) == true);
47    std::cout << s1 << " <= " << s3 << " = " << (s1 <= s3)  << "\n";
48    assert((s1 <= s3) == true);
49    std::cout << s3 << " <= " << s1 << " = " << (s3 <= s1)  << "\n";
50    assert((s3 <= s1) == false);
51
52    std::cout << s1 << " >= " << s2 << " = " << (s1 >= s2)  << "\n";
53    assert((s1 >= s2) == true);
54    std::cout << s1 << " >= " << s3 << " = " << (s1 >= s3)  << "\n";
55    assert((s1 >= s3) == false);
56    std::cout << s3 << " >= " << s1 << " = " << (s3 >= s1)  << "\n";
57    assert((s3 >= s1) == true);
58
59    //  Compare literal strings
60
61    std::cout << s1 << " == " << "abcdef" << " = " << (s1 == "abcdef")  << "\n";
62    assert((s1 == "abcdef") == true);
63    std::cout << s1 << " == " << "vwuxyz" << " = " << (s1 == "vwuxyz")  << "\n";
64    assert((s1 == "vwuxyz") == false);
65
66    std::cout << s1 << " != " << "abcdef" << " = " << (s1 != "abcdef")  << "\n";
67    assert((s1 != "abcdef") == false);
68    std::cout << s1 << " != " << "vwuxyz" << " = " << (s1 != "vwuxyz")  << "\n";
69    assert((s1 != "vwuxyz") == true);
70
71    //  Compare character array variables
72
73    const char *c2 = "abcdef";
74    const char *c3 = "vwuxyz";
75
76    std::cout << s1 << " == " << c2 << " = " << (s1 == c2)  << "\n";
77    assert((s1 == c2) == true);
78    std::cout << s1 << " == " << c3 << " = " << (s1 == c3)  << "\n";
79    assert((s1 == c3) == false);
80
81    std::cout << s1 << " != " << c2 << " = " << (s1 != c2)  << "\n";
82    assert((s1 != c2) == false);
83    std::cout << s1 << " != " << c3 << " = " << (s1 != c3)  << "\n";
84    assert((s1 != c3) == true);
85
86    //  Compare an empty string
87
88    String empty;
89
90    std::cout << s1 << " == " << empty << " = " << (s1 == empty)  << "\n";
91    assert((s1 == empty) == false);
92    std::cout << s1 << " != " << empty << " = " << (s1 != empty)  << "\n";
93    assert((s1 != empty) == true);
94    std::cout << s1 << " <  " << empty << " = " << (s1 <  empty)  << "\n";
95    assert((s1 <  empty) == false);
96    std::cout << s1 << " >  " << empty << " = " << (s1 >  empty)  << "\n";
97    assert((s1 >  empty) == true);
98
99    return 0;
100 }
101