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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
// vim: syntax=cpp
/*
* Copyright (C) 2007-2019 Xagasoft, All rights reserved.
*
* This file is part of the libbu++ library and is released under the
* terms of the license contained in the file LICENSE.
*/
#include "bu/blob.h"
#include "bu/exceptionindexoutofbounds.h"
#include "bu/sio.h"
#include <string.h>
suite Blob
{
test set
{
Bu::Blob a("hello there");
unitTest( !strcmp( a.getData(), "hello there") );
Bu::Blob b( a );
a = "New string";
unitTest( !strcmp( a.getData(), "New string") );
unitTest( !strcmp( b.getData(), "hello there") );
b = a;
unitTest( !strcmp( b.getData(), "New string") );
}
test index
{
Bu::Blob a("hello there");
unitTest( a[5] == ' ' );
unitTest( a[6] == 't' );
unitTestCatch( a[-1], Bu::ExceptionIndexOutOfBounds );
unitTestCatch( a[-100], Bu::ExceptionIndexOutOfBounds );
unitTest( a[10] == 'e' );
unitTestCatch( a[11], Bu::ExceptionIndexOutOfBounds );
unitTestCatch( a[12], Bu::ExceptionIndexOutOfBounds );
}
test compare
{
Bu::Blob a("cat"), b("dog"), c("cattail"), d("dog");
unitTest( a != b );
unitTest( a != c );
unitTest( a != "catt" );
unitTest( a != "ca" );
unitTest( !(a == c) );
unitTest( !(a == d) );
unitTest( a == a );
unitTest( !(a != a) );
unitTest( !(b != d) );
unitTest( a < b );
unitTest( a <= b );
unitTest( a < c );
unitTest( a <= c );
unitTest( !(b < d) );
unitTest( b <= d );
unitTest( !(c < a) );
unitTest( a < "dog" );
unitTest( a <= "dog" );
unitTest( a < "cattail" );
unitTest( a <= "cattail" );
unitTest( !(b < "dog") );
unitTest( b <= "dog" );
unitTest( !(c < "cattail") );
unitTest( b > a );
unitTest( b >= a );
unitTest( c > a );
unitTest( c >= a );
unitTest( !(d > b) );
unitTest( d <= b );
unitTest( !(a > c) );
unitTest( b > "cat" );
unitTest( b >= "cat" );
unitTest( c > "cat" );
unitTest( c >= "cat" );
unitTest( !(d > "dog") );
unitTest( d <= "dog" );
unitTest( !(a > "cattail") );
}
test iterator
{
}
test const_iterator
{
}
test sort
{
Bu::List<Bu::Blob> lList;
lList.append("Moose");
lList.append("Cattail");
lList.append("Cat");
lList.append("Cattxil");
lList.append("Moo");
lList.append("Cattails");
lList.append("Dog");
lList.sort();
Bu::List<Bu::Blob>::iterator i = lList.begin();
unitTest( *i == "Cat" && i++ );
unitTest( *i == "Cattail" && i++ );
unitTest( *i == "Cattails" && i++ );
unitTest( *i == "Cattxil" && i++ );
unitTest( *i == "Dog" && i++ );
unitTest( *i == "Moo" && i++ );
unitTest( *i == "Moose" && !(i++) );
}
}
|