diff options
Diffstat (limited to 'src/unit')
-rw-r--r-- | src/unit/blob.unit | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/unit/blob.unit b/src/unit/blob.unit new file mode 100644 index 0000000..645052b --- /dev/null +++ b/src/unit/blob.unit | |||
@@ -0,0 +1,118 @@ | |||
1 | // vim: syntax=cpp | ||
2 | /* | ||
3 | * Copyright (C) 2007-2019 Xagasoft, All rights reserved. | ||
4 | * | ||
5 | * This file is part of the libbu++ library and is released under the | ||
6 | * terms of the license contained in the file LICENSE. | ||
7 | */ | ||
8 | |||
9 | #include "bu/blob.h" | ||
10 | #include "bu/exceptionindexoutofbounds.h" | ||
11 | #include "bu/sio.h" | ||
12 | |||
13 | #include <string.h> | ||
14 | |||
15 | suite Blob | ||
16 | { | ||
17 | test set | ||
18 | { | ||
19 | Bu::Blob a("hello there"); | ||
20 | unitTest( !strcmp( a.getData(), "hello there") ); | ||
21 | Bu::Blob b( a ); | ||
22 | a = "New string"; | ||
23 | unitTest( !strcmp( a.getData(), "New string") ); | ||
24 | unitTest( !strcmp( b.getData(), "hello there") ); | ||
25 | b = a; | ||
26 | unitTest( !strcmp( b.getData(), "New string") ); | ||
27 | } | ||
28 | |||
29 | test index | ||
30 | { | ||
31 | Bu::Blob a("hello there"); | ||
32 | unitTest( a[5] == ' ' ); | ||
33 | unitTest( a[6] == 't' ); | ||
34 | unitTestCatch( a[-1], Bu::ExceptionIndexOutOfBounds ); | ||
35 | unitTestCatch( a[-100], Bu::ExceptionIndexOutOfBounds ); | ||
36 | unitTest( a[10] == 'e' ); | ||
37 | unitTestCatch( a[11], Bu::ExceptionIndexOutOfBounds ); | ||
38 | unitTestCatch( a[12], Bu::ExceptionIndexOutOfBounds ); | ||
39 | } | ||
40 | |||
41 | test compare | ||
42 | { | ||
43 | Bu::Blob a("cat"), b("dog"), c("cattail"), d("dog"); | ||
44 | |||
45 | unitTest( a != b ); | ||
46 | unitTest( a != c ); | ||
47 | unitTest( a != "catt" ); | ||
48 | unitTest( a != "ca" ); | ||
49 | unitTest( !(a == c) ); | ||
50 | unitTest( !(a == d) ); | ||
51 | unitTest( a == a ); | ||
52 | unitTest( !(a != a) ); | ||
53 | unitTest( !(b != d) ); | ||
54 | |||
55 | unitTest( a < b ); | ||
56 | unitTest( a <= b ); | ||
57 | unitTest( a < c ); | ||
58 | unitTest( a <= c ); | ||
59 | unitTest( !(b < d) ); | ||
60 | unitTest( b <= d ); | ||
61 | unitTest( !(c < a) ); | ||
62 | |||
63 | unitTest( a < "dog" ); | ||
64 | unitTest( a <= "dog" ); | ||
65 | unitTest( a < "cattail" ); | ||
66 | unitTest( a <= "cattail" ); | ||
67 | unitTest( !(b < "dog") ); | ||
68 | unitTest( b <= "dog" ); | ||
69 | unitTest( !(c < "cattail") ); | ||
70 | |||
71 | unitTest( b > a ); | ||
72 | unitTest( b >= a ); | ||
73 | unitTest( c > a ); | ||
74 | unitTest( c >= a ); | ||
75 | unitTest( !(d > b) ); | ||
76 | unitTest( d <= b ); | ||
77 | unitTest( !(a > c) ); | ||
78 | |||
79 | unitTest( b > "cat" ); | ||
80 | unitTest( b >= "cat" ); | ||
81 | unitTest( c > "cat" ); | ||
82 | unitTest( c >= "cat" ); | ||
83 | unitTest( !(d > "dog") ); | ||
84 | unitTest( d <= "dog" ); | ||
85 | unitTest( !(a > "cattail") ); | ||
86 | } | ||
87 | |||
88 | test iterator | ||
89 | { | ||
90 | } | ||
91 | |||
92 | test const_iterator | ||
93 | { | ||
94 | } | ||
95 | |||
96 | test sort | ||
97 | { | ||
98 | Bu::List<Bu::Blob> lList; | ||
99 | lList.append("Moose"); | ||
100 | lList.append("Cattail"); | ||
101 | lList.append("Cat"); | ||
102 | lList.append("Cattxil"); | ||
103 | lList.append("Moo"); | ||
104 | lList.append("Cattails"); | ||
105 | lList.append("Dog"); | ||
106 | |||
107 | lList.sort(); | ||
108 | |||
109 | Bu::List<Bu::Blob>::iterator i = lList.begin(); | ||
110 | unitTest( *i == "Cat" && i++ ); | ||
111 | unitTest( *i == "Cattail" && i++ ); | ||
112 | unitTest( *i == "Cattails" && i++ ); | ||
113 | unitTest( *i == "Cattxil" && i++ ); | ||
114 | unitTest( *i == "Dog" && i++ ); | ||
115 | unitTest( *i == "Moo" && i++ ); | ||
116 | unitTest( *i == "Moose" && !(i++) ); | ||
117 | } | ||
118 | } | ||