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