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