1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.mavibot.btree.serializer;
21
22
23 import static org.junit.Assert.assertEquals;
24
25 import java.io.IOException;
26
27 import org.junit.Test;
28
29
30
31
32
33
34
35 public class LongSerializerTest
36 {
37 private static LongSerializer serializer = new LongSerializer();
38
39
40 @Test
41 public void testLongSerializer() throws IOException
42 {
43 long value = 0x0000000000000000L;
44 byte[] result = LongSerializer.serialize( value );
45
46 assertEquals( ( byte ) 0x00, result[7] );
47 assertEquals( ( byte ) 0x00, result[6] );
48 assertEquals( ( byte ) 0x00, result[5] );
49 assertEquals( ( byte ) 0x00, result[4] );
50 assertEquals( ( byte ) 0x00, result[3] );
51 assertEquals( ( byte ) 0x00, result[2] );
52 assertEquals( ( byte ) 0x00, result[1] );
53 assertEquals( ( byte ) 0x00, result[0] );
54
55 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
56
57
58 value = 0x0000000000000001L;
59 result = LongSerializer.serialize( value );
60
61 assertEquals( ( byte ) 0x01, result[7] );
62 assertEquals( ( byte ) 0x00, result[6] );
63 assertEquals( ( byte ) 0x00, result[5] );
64 assertEquals( ( byte ) 0x00, result[4] );
65 assertEquals( ( byte ) 0x00, result[3] );
66 assertEquals( ( byte ) 0x00, result[2] );
67 assertEquals( ( byte ) 0x00, result[1] );
68 assertEquals( ( byte ) 0x00, result[0] );
69
70 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
71
72
73 value = 0x00000000000000FFL;
74 result = LongSerializer.serialize( value );
75
76 assertEquals( ( byte ) 0xFF, result[7] );
77 assertEquals( ( byte ) 0x00, result[6] );
78 assertEquals( ( byte ) 0x00, result[5] );
79 assertEquals( ( byte ) 0x00, result[4] );
80 assertEquals( ( byte ) 0x00, result[3] );
81 assertEquals( ( byte ) 0x00, result[2] );
82 assertEquals( ( byte ) 0x00, result[1] );
83 assertEquals( ( byte ) 0x00, result[0] );
84
85 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
86
87
88 value = 0x0000000000000100L;
89 result = LongSerializer.serialize( value );
90
91 assertEquals( ( byte ) 0x00, result[7] );
92 assertEquals( ( byte ) 0x01, result[6] );
93 assertEquals( ( byte ) 0x00, result[5] );
94 assertEquals( ( byte ) 0x00, result[4] );
95 assertEquals( ( byte ) 0x00, result[3] );
96 assertEquals( ( byte ) 0x00, result[2] );
97 assertEquals( ( byte ) 0x00, result[1] );
98 assertEquals( ( byte ) 0x00, result[0] );
99
100 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
101
102
103 value = 0x000000000000FFFFL;
104 result = LongSerializer.serialize( value );
105
106 assertEquals( ( byte ) 0xFF, result[7] );
107 assertEquals( ( byte ) 0xFF, result[6] );
108 assertEquals( ( byte ) 0x00, result[5] );
109 assertEquals( ( byte ) 0x00, result[4] );
110 assertEquals( ( byte ) 0x00, result[3] );
111 assertEquals( ( byte ) 0x00, result[2] );
112 assertEquals( ( byte ) 0x00, result[1] );
113 assertEquals( ( byte ) 0x00, result[0] );
114
115 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
116
117
118 value = 0x0000000000010000L;
119 result = LongSerializer.serialize( value );
120
121 assertEquals( ( byte ) 0x00, result[7] );
122 assertEquals( ( byte ) 0x00, result[6] );
123 assertEquals( ( byte ) 0x01, result[5] );
124 assertEquals( ( byte ) 0x00, result[4] );
125 assertEquals( ( byte ) 0x00, result[3] );
126 assertEquals( ( byte ) 0x00, result[2] );
127 assertEquals( ( byte ) 0x00, result[1] );
128 assertEquals( ( byte ) 0x00, result[0] );
129
130 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
131
132
133 value = 0x0000000000FFFFFFL;
134 result = LongSerializer.serialize( value );
135
136 assertEquals( ( byte ) 0xFF, result[7] );
137 assertEquals( ( byte ) 0xFF, result[6] );
138 assertEquals( ( byte ) 0xFF, result[5] );
139 assertEquals( ( byte ) 0x00, result[4] );
140 assertEquals( ( byte ) 0x00, result[3] );
141 assertEquals( ( byte ) 0x00, result[2] );
142 assertEquals( ( byte ) 0x00, result[1] );
143 assertEquals( ( byte ) 0x00, result[0] );
144
145 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
146
147
148 value = 0x0000000001000000L;
149 result = LongSerializer.serialize( value );
150
151 assertEquals( ( byte ) 0x00, result[7] );
152 assertEquals( ( byte ) 0x00, result[6] );
153 assertEquals( ( byte ) 0x00, result[5] );
154 assertEquals( ( byte ) 0x01, result[4] );
155 assertEquals( ( byte ) 0x00, result[3] );
156 assertEquals( ( byte ) 0x00, result[2] );
157 assertEquals( ( byte ) 0x00, result[1] );
158 assertEquals( ( byte ) 0x00, result[0] );
159
160 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
161
162
163 value = 0x000000007FFFFFFFL;
164 result = LongSerializer.serialize( value );
165
166 assertEquals( ( byte ) 0xFF, result[7] );
167 assertEquals( ( byte ) 0xFF, result[6] );
168 assertEquals( ( byte ) 0xFF, result[5] );
169 assertEquals( ( byte ) 0x7F, result[4] );
170 assertEquals( ( byte ) 0x00, result[3] );
171 assertEquals( ( byte ) 0x00, result[2] );
172 assertEquals( ( byte ) 0x00, result[1] );
173 assertEquals( ( byte ) 0x00, result[0] );
174
175 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
176
177
178 value = 0x0000000080000000L;
179 result = LongSerializer.serialize( value );
180
181 assertEquals( ( byte ) 0x00, result[7] );
182 assertEquals( ( byte ) 0x00, result[6] );
183 assertEquals( ( byte ) 0x00, result[5] );
184 assertEquals( ( byte ) 0x80, result[4] );
185 assertEquals( ( byte ) 0x00, result[3] );
186 assertEquals( ( byte ) 0x00, result[2] );
187 assertEquals( ( byte ) 0x00, result[1] );
188 assertEquals( ( byte ) 0x00, result[0] );
189
190 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
191
192
193 value = 0x00000000FFFFFFFFL;
194 result = LongSerializer.serialize( value );
195
196 assertEquals( ( byte ) 0xFF, result[7] );
197 assertEquals( ( byte ) 0xFF, result[6] );
198 assertEquals( ( byte ) 0xFF, result[5] );
199 assertEquals( ( byte ) 0xFF, result[4] );
200 assertEquals( ( byte ) 0x00, result[3] );
201 assertEquals( ( byte ) 0x00, result[2] );
202 assertEquals( ( byte ) 0x00, result[1] );
203 assertEquals( ( byte ) 0x00, result[0] );
204
205 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
206
207
208 value = 0x0000000100000000L;
209 result = LongSerializer.serialize( value );
210
211 assertEquals( ( byte ) 0x00, result[7] );
212 assertEquals( ( byte ) 0x00, result[6] );
213 assertEquals( ( byte ) 0x00, result[5] );
214 assertEquals( ( byte ) 0x00, result[4] );
215 assertEquals( ( byte ) 0x01, result[3] );
216 assertEquals( ( byte ) 0x00, result[2] );
217 assertEquals( ( byte ) 0x00, result[1] );
218 assertEquals( ( byte ) 0x00, result[0] );
219
220 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
221
222
223 value = 0x000000FFFFFFFFFFL;
224 result = LongSerializer.serialize( value );
225
226 assertEquals( ( byte ) 0xFF, result[7] );
227 assertEquals( ( byte ) 0xFF, result[6] );
228 assertEquals( ( byte ) 0xFF, result[5] );
229 assertEquals( ( byte ) 0xFF, result[4] );
230 assertEquals( ( byte ) 0xFF, result[3] );
231 assertEquals( ( byte ) 0x00, result[2] );
232 assertEquals( ( byte ) 0x00, result[1] );
233 assertEquals( ( byte ) 0x00, result[0] );
234
235 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
236
237
238 value = 0x0000010000000000L;
239 result = LongSerializer.serialize( value );
240
241 assertEquals( ( byte ) 0x00, result[7] );
242 assertEquals( ( byte ) 0x00, result[6] );
243 assertEquals( ( byte ) 0x00, result[5] );
244 assertEquals( ( byte ) 0x00, result[4] );
245 assertEquals( ( byte ) 0x00, result[3] );
246 assertEquals( ( byte ) 0x01, result[2] );
247 assertEquals( ( byte ) 0x00, result[1] );
248 assertEquals( ( byte ) 0x00, result[0] );
249
250 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
251
252
253 value = 0x0000FFFFFFFFFFFFL;
254 result = LongSerializer.serialize( value );
255
256 assertEquals( ( byte ) 0xFF, result[7] );
257 assertEquals( ( byte ) 0xFF, result[6] );
258 assertEquals( ( byte ) 0xFF, result[5] );
259 assertEquals( ( byte ) 0xFF, result[4] );
260 assertEquals( ( byte ) 0xFF, result[3] );
261 assertEquals( ( byte ) 0xFF, result[2] );
262 assertEquals( ( byte ) 0x00, result[1] );
263 assertEquals( ( byte ) 0x00, result[0] );
264
265 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
266
267
268 value = 0x0001000000000000L;
269 result = LongSerializer.serialize( value );
270
271 assertEquals( ( byte ) 0x00, result[7] );
272 assertEquals( ( byte ) 0x00, result[6] );
273 assertEquals( ( byte ) 0x00, result[5] );
274 assertEquals( ( byte ) 0x00, result[4] );
275 assertEquals( ( byte ) 0x00, result[3] );
276 assertEquals( ( byte ) 0x00, result[2] );
277 assertEquals( ( byte ) 0x01, result[1] );
278 assertEquals( ( byte ) 0x00, result[0] );
279
280 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
281
282
283 value = 0x00FFFFFFFFFFFFFFL;
284 result = LongSerializer.serialize( value );
285
286 assertEquals( ( byte ) 0xFF, result[7] );
287 assertEquals( ( byte ) 0xFF, result[6] );
288 assertEquals( ( byte ) 0xFF, result[5] );
289 assertEquals( ( byte ) 0xFF, result[4] );
290 assertEquals( ( byte ) 0xFF, result[3] );
291 assertEquals( ( byte ) 0xFF, result[2] );
292 assertEquals( ( byte ) 0xFF, result[1] );
293 assertEquals( ( byte ) 0x00, result[0] );
294
295 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
296
297
298 value = 0x0100000000000000L;
299 result = LongSerializer.serialize( value );
300
301 assertEquals( ( byte ) 0x00, result[7] );
302 assertEquals( ( byte ) 0x00, result[6] );
303 assertEquals( ( byte ) 0x00, result[5] );
304 assertEquals( ( byte ) 0x00, result[4] );
305 assertEquals( ( byte ) 0x00, result[3] );
306 assertEquals( ( byte ) 0x00, result[2] );
307 assertEquals( ( byte ) 0x00, result[1] );
308 assertEquals( ( byte ) 0x01, result[0] );
309
310 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
311
312
313 value = 0x7FFFFFFFFFFFFFFFL;
314 result = LongSerializer.serialize( value );
315
316 assertEquals( ( byte ) 0xFF, result[7] );
317 assertEquals( ( byte ) 0xFF, result[6] );
318 assertEquals( ( byte ) 0xFF, result[5] );
319 assertEquals( ( byte ) 0xFF, result[4] );
320 assertEquals( ( byte ) 0xFF, result[3] );
321 assertEquals( ( byte ) 0xFF, result[2] );
322 assertEquals( ( byte ) 0xFF, result[1] );
323 assertEquals( ( byte ) 0x7F, result[0] );
324
325 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
326
327
328 value = 0x8000000000000000L;
329 result = LongSerializer.serialize( value );
330
331 assertEquals( ( byte ) 0x00, result[7] );
332 assertEquals( ( byte ) 0x00, result[6] );
333 assertEquals( ( byte ) 0x00, result[5] );
334 assertEquals( ( byte ) 0x00, result[4] );
335 assertEquals( ( byte ) 0x00, result[3] );
336 assertEquals( ( byte ) 0x00, result[2] );
337 assertEquals( ( byte ) 0x00, result[1] );
338 assertEquals( ( byte ) 0x80, result[0] );
339
340 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
341
342
343 value = 0xFFFFFFFFFFFFFFFFL;
344 result = LongSerializer.serialize( value );
345
346 assertEquals( ( byte ) 0xFF, result[7] );
347 assertEquals( ( byte ) 0xFF, result[6] );
348 assertEquals( ( byte ) 0xFF, result[5] );
349 assertEquals( ( byte ) 0xFF, result[4] );
350 assertEquals( ( byte ) 0xFF, result[3] );
351 assertEquals( ( byte ) 0xFF, result[2] );
352 assertEquals( ( byte ) 0xFF, result[1] );
353 assertEquals( ( byte ) 0xFF, result[0] );
354
355 assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).longValue() );
356 }
357 }