blob: bb920b7e8d43ed96655bcf67d6d22d98d4da8748 (
plain)
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
|
/////////////////////////////////////////////////////////////////////////////
// Copyright (c) Electronic Arts Inc. All rights reserved.
/////////////////////////////////////////////////////////////////////////////
#include "EASTLTest.h"
#include <EASTL/segmented_vector.h>
#include <EASTL/list.h>
// Template instantations.
// These tell the compiler to compile all the functions for the given class.
template class eastl::segmented_vector<bool, 16>;
template class eastl::segmented_vector<int, 16>;
template class eastl::segmented_vector<Align64, 16>;
template class eastl::segmented_vector<TestObject, 16>;
int TestSegmentedVector()
{
int nErrorCount = 0;
TestObject::Reset();
{
eastl::segmented_vector<int, 8> sv;
sv.push_back(0);
sv.push_back(1);
sv.push_back(2);
sv.push_back(3);
{
auto i = sv.begin();
EATEST_VERIFY(*i == 0);
EATEST_VERIFY(*i++ == 0);
EATEST_VERIFY(*i++ == 1);
EATEST_VERIFY(*i++ == 2);
EATEST_VERIFY(*i++ == 3);
}
{
auto i = sv.begin();
EATEST_VERIFY(*i == 0);
EATEST_VERIFY(*(++i) == 1);
EATEST_VERIFY(*(++i) == 2);
EATEST_VERIFY(*(++i) == 3);
}
}
{
// Construct segmented_vectors of different types.
eastl::segmented_vector<int, 8> vectorOfInt;
eastl::segmented_vector<TestObject, 8> vectorOfTO;
eastl::segmented_vector<eastl::list<TestObject>, 8> vectorOfListOfTO;
EATEST_VERIFY(vectorOfInt.empty());
EATEST_VERIFY(vectorOfTO.empty());
EATEST_VERIFY(vectorOfListOfTO.empty());
}
{
// Test basic segmented_vector operations.
eastl::segmented_vector<int, 4> vectorOfInt;
vectorOfInt.push_back(42);
EATEST_VERIFY(vectorOfInt.size() == 1);
EATEST_VERIFY(vectorOfInt.segment_count() == 1);
EATEST_VERIFY(vectorOfInt.empty() == false);
vectorOfInt.push_back(43);
vectorOfInt.push_back(44);
vectorOfInt.push_back(45);
vectorOfInt.push_back(46);
EATEST_VERIFY(vectorOfInt.size() == 5);
EATEST_VERIFY(vectorOfInt.segment_count() == 2);
EATEST_VERIFY(vectorOfInt.front() == 42);
EATEST_VERIFY(vectorOfInt.back() == 46);
vectorOfInt.pop_back();
EATEST_VERIFY(vectorOfInt.size() == 4);
EATEST_VERIFY(vectorOfInt.segment_count() == 1);
vectorOfInt.clear();
EATEST_VERIFY(vectorOfInt.empty());
EATEST_VERIFY(vectorOfInt.size() == 0);
EATEST_VERIFY(vectorOfInt.segment_count() == 0);
}
return nErrorCount;
}
|