blob: 289c988b514a2543c30714a97669700162a07923 [file] [log] [blame]
package org.codehaus.jackson.smile;
public class TestSmileUtil
extends main.BaseTest
{
/**
* Verification of helper methods used to handle with zigzag encoding
*/
public void testZigZagInt()
{
// simple encode
assertEquals(0, SmileUtil.zigzagEncode(0));
assertEquals(1, SmileUtil.zigzagEncode(-1));
assertEquals(2, SmileUtil.zigzagEncode(1));
assertEquals(0xFFFFFFFF, SmileUtil.zigzagEncode(Integer.MIN_VALUE));
assertEquals(0xFFFFFFFE, SmileUtil.zigzagEncode(Integer.MAX_VALUE));
// simple decode
assertEquals(0, SmileUtil.zigzagDecode(0));
assertEquals(-1, SmileUtil.zigzagDecode(1));
assertEquals(1, SmileUtil.zigzagDecode(2));
assertEquals(0x7fffFFFF, SmileUtil.zigzagDecode(0xFFFFFFFE));
assertEquals(Integer.MIN_VALUE, SmileUtil.zigzagDecode(0xFFFFFFFF));
// round-trip
assertEquals(Integer.MIN_VALUE, SmileUtil.zigzagDecode(SmileUtil.zigzagEncode(Integer.MIN_VALUE)));
assertEquals(Integer.MAX_VALUE, SmileUtil.zigzagDecode(SmileUtil.zigzagEncode(Integer.MAX_VALUE)));
}
public void testZigZagLong()
{
assertEquals(0L, SmileUtil.zigzagEncode(0L));
assertEquals(-1L, SmileUtil.zigzagEncode(Long.MIN_VALUE));
assertEquals(-2L, SmileUtil.zigzagEncode(Long.MAX_VALUE));
assertEquals(Long.MAX_VALUE, SmileUtil.zigzagDecode(-2L));
assertEquals(Long.MIN_VALUE, SmileUtil.zigzagDecode(-1L));
// round-trip
assertEquals(Long.MIN_VALUE, SmileUtil.zigzagDecode(SmileUtil.zigzagEncode(Long.MIN_VALUE)));
assertEquals(Long.MAX_VALUE, SmileUtil.zigzagDecode(SmileUtil.zigzagEncode(Long.MAX_VALUE)));
}
}