29 #include <gtest/gtest.h>
37 TEST(ChunkGeneratorTest, StartingConditions)
40 EXPECT_EQ(0, chunk_generator.
addr());
41 EXPECT_EQ(8, chunk_generator.
size());
42 EXPECT_EQ(0, chunk_generator.
complete());
43 EXPECT_FALSE(chunk_generator.
done());
44 EXPECT_FALSE(chunk_generator.
last());
50 TEST(ChunkGeneratorTest, AdvanceToNextChunk)
53 EXPECT_EQ(0, chunk_generator.
addr());
54 EXPECT_TRUE(chunk_generator.
next());
55 EXPECT_EQ(8, chunk_generator.
addr());
56 EXPECT_EQ(8, chunk_generator.
size());
57 EXPECT_EQ(8, chunk_generator.
complete());
58 EXPECT_FALSE(chunk_generator.
done());
59 EXPECT_FALSE(chunk_generator.
last());
65 TEST(ChunkGeneratorTest, SkipBytes)
68 EXPECT_EQ(0, chunk_generator.
addr());
69 EXPECT_TRUE(chunk_generator.
next());
70 EXPECT_EQ(8, chunk_generator.
addr());
73 EXPECT_EQ(23 - 8, chunk_generator.
size());
74 EXPECT_TRUE(chunk_generator.
next());
75 EXPECT_EQ(23, chunk_generator.
addr());
76 EXPECT_EQ(1, chunk_generator.
size());
77 EXPECT_TRUE(chunk_generator.
next());
78 EXPECT_EQ(24, chunk_generator.
addr());
79 EXPECT_EQ(8, chunk_generator.
size());
82 EXPECT_EQ(32 - 24, chunk_generator.
size());
83 EXPECT_TRUE(chunk_generator.
next());
84 EXPECT_EQ(32, chunk_generator.
addr());
85 EXPECT_EQ(8, chunk_generator.
size());
88 EXPECT_EQ(64 - 32, chunk_generator.
size());
89 EXPECT_TRUE(chunk_generator.
next());
90 EXPECT_EQ(64, chunk_generator.
addr());
91 EXPECT_EQ(8, chunk_generator.
size());
94 EXPECT_EQ(1024 - 64, chunk_generator.
size());
95 EXPECT_TRUE(chunk_generator.
last());
96 EXPECT_FALSE(chunk_generator.
next());
97 EXPECT_TRUE(chunk_generator.
done());
103 TEST(ChunkGeneratorTest, AdvanceToLastChunk)
106 EXPECT_EQ(0, chunk_generator.
addr());
107 EXPECT_TRUE(chunk_generator.
next());
108 EXPECT_EQ(8, chunk_generator.
addr());
109 EXPECT_TRUE(chunk_generator.
next());
110 EXPECT_EQ(16, chunk_generator.
addr());
111 EXPECT_TRUE(chunk_generator.
next());
112 EXPECT_EQ(24, chunk_generator.
addr());
113 EXPECT_EQ(8, chunk_generator.
size());
114 EXPECT_EQ(24, chunk_generator.
complete());
115 EXPECT_FALSE(chunk_generator.
done());
116 EXPECT_TRUE(chunk_generator.
last());
122 TEST(ChunkGeneratorTest, AdvanceToTheEnd)
125 EXPECT_EQ(0, chunk_generator.
addr());
126 EXPECT_TRUE(chunk_generator.
next());
127 EXPECT_EQ(8, chunk_generator.
addr());
128 EXPECT_TRUE(chunk_generator.
next());
129 EXPECT_EQ(16, chunk_generator.
addr());
130 EXPECT_TRUE(chunk_generator.
next());
131 EXPECT_EQ(24, chunk_generator.
addr());
137 EXPECT_FALSE(chunk_generator.
next());
138 EXPECT_EQ(24, chunk_generator.
addr());
139 EXPECT_EQ(0, chunk_generator.
size());
140 EXPECT_EQ(24, chunk_generator.
complete());
141 EXPECT_TRUE(chunk_generator.
done());
142 EXPECT_TRUE(chunk_generator.
last());
149 TEST(ChunkGeneratorTest, SmallerLastChunk)
153 EXPECT_EQ(0, chunk_generator.
addr());
154 EXPECT_TRUE(chunk_generator.
next());
155 EXPECT_EQ(8, chunk_generator.
addr());
156 EXPECT_EQ(6, chunk_generator.
size());
157 EXPECT_EQ(8, chunk_generator.
complete());
158 EXPECT_FALSE(chunk_generator.
done());
159 EXPECT_TRUE(chunk_generator.
last());
167 TEST(ChunkGeneratorTest, ChunkSizeGreaterThanTotalSize)
170 EXPECT_EQ(0, chunk_generator.
addr());
171 EXPECT_EQ(32, chunk_generator.
size());
172 EXPECT_EQ(0, chunk_generator.
complete());
173 EXPECT_FALSE(chunk_generator.
done());
174 EXPECT_TRUE(chunk_generator.
last());
177 EXPECT_FALSE(chunk_generator.
next());
178 EXPECT_EQ(0, chunk_generator.
addr());
179 EXPECT_EQ(0, chunk_generator.
size());
180 EXPECT_EQ(0, chunk_generator.
complete());
181 EXPECT_TRUE(chunk_generator.
done());
182 EXPECT_TRUE(chunk_generator.
last());
190 TEST(ChunkGeneratorTest, ChunkSizeZero)
193 EXPECT_EQ(0, chunk_generator.
addr());
194 EXPECT_EQ(64, chunk_generator.
size());
195 EXPECT_EQ(0, chunk_generator.
complete());
196 EXPECT_FALSE(chunk_generator.
done());
197 EXPECT_TRUE(chunk_generator.
last());
200 EXPECT_FALSE(chunk_generator.
next());
201 EXPECT_EQ(0, chunk_generator.
addr());
202 EXPECT_EQ(0, chunk_generator.
size());
203 EXPECT_EQ(0, chunk_generator.
complete());
204 EXPECT_TRUE(chunk_generator.
done());
205 EXPECT_TRUE(chunk_generator.
last());
211 TEST(ChunkGeneratorTest, StartAtNonZero)
214 EXPECT_EQ(4, chunk_generator.
addr());
215 EXPECT_EQ(4, chunk_generator.
size());
216 EXPECT_EQ(0, chunk_generator.
complete());
217 EXPECT_FALSE(chunk_generator.
done());
218 EXPECT_FALSE(chunk_generator.
last());
224 EXPECT_TRUE(chunk_generator.
next());
225 EXPECT_EQ(8, chunk_generator.
addr());
226 EXPECT_EQ(8, chunk_generator.
size());
227 EXPECT_EQ(4, chunk_generator.
complete());
228 EXPECT_FALSE(chunk_generator.
done());
229 EXPECT_FALSE(chunk_generator.
last());
232 EXPECT_TRUE(chunk_generator.
next());
233 EXPECT_EQ(16, chunk_generator.
addr());
234 EXPECT_EQ(8, chunk_generator.
size());
235 EXPECT_EQ(12, chunk_generator.
complete());
236 EXPECT_FALSE(chunk_generator.
done());
237 EXPECT_FALSE(chunk_generator.
last());
239 EXPECT_TRUE(chunk_generator.
next());
240 EXPECT_EQ(24, chunk_generator.
addr());
241 EXPECT_EQ(8, chunk_generator.
size());
242 EXPECT_EQ(20, chunk_generator.
complete());
243 EXPECT_FALSE(chunk_generator.
done());
244 EXPECT_FALSE(chunk_generator.
last());
247 EXPECT_TRUE(chunk_generator.
next());
248 EXPECT_EQ(32, chunk_generator.
addr());
249 EXPECT_EQ(4, chunk_generator.
size());
250 EXPECT_EQ(28, chunk_generator.
complete());
251 EXPECT_FALSE(chunk_generator.
done());
252 EXPECT_TRUE(chunk_generator.
last());
254 EXPECT_FALSE(chunk_generator.
next());
255 EXPECT_EQ(32, chunk_generator.
addr());
256 EXPECT_EQ(0, chunk_generator.
size());
257 EXPECT_EQ(28, chunk_generator.
complete());
258 EXPECT_TRUE(chunk_generator.
done());
259 EXPECT_TRUE(chunk_generator.
last());