package aQute.lib.hex;
import java.util.Arrays;
import aQute.lib.base64.Base64;
import junit.framework.TestCase;
public class HexTest extends TestCase {
static final char ns[] = {
' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e',
'f', 'g', 'A', 'B', 'C', 'D', 'E', 'F', 'G', '_'
};
static final int nsr[] = {
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, 10, 11, 12, 13,
14, 15, -1, -1
};
public static void testNibble() {
for (int i = 0; i < ns.length; i++) {
try {
assertEquals(nsr[i], Hex.nibble(ns[i]));
} catch (IllegalArgumentException e) {
assertEquals("Did not get an exception for nibble \"" + ns[i] + "\"", -1, nsr[i]);
}
}
}
public static void testHexOddCount() {
boolean ex = false;
byte[] bytes = null;
try {
Hex.toByteArray("b10a8db164e0754105b7a99be72e3fe");
} catch (IllegalArgumentException e) {
ex = true;
}
assertTrue(ex);
assertNull(bytes);
}
public static void testHex() {
byte[] bytes = Hex.toByteArray("b10a8db164e0754105b7a99be72e3fe5");
String s = Hex.toHexString(bytes);
assertEquals("b10a8db164e0754105b7a99be72e3fe5", s.toLowerCase());
}
public static void testBase64() {
assertEquals("", Base64.encodeBase64(new byte[] {}));
assertEquals("MQ==", Base64.encodeBase64(new byte[] {
'1'
}));
assertEquals("MTI=", Base64.encodeBase64(new byte[] {
'1', '2'
}));
assertEquals("MTIz", Base64.encodeBase64(new byte[] {
'1', '2', '3'
}));
assertEquals("MTIzNA==", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4'
}));
assertEquals("MTIzNDU=", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5'
}));
assertEquals("MTIzNDU2", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5', '6'
}));
assertEquals("MTIzNDU2Nw==", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5', '6', '7'
}));
assertEquals("MTIzNDU2Nzg=", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5', '6', '7', '8'
}));
assertEquals("MTIzNDU2Nzg5", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5', '6', '7', '8', '9'
}));
assertEquals("MTIzNDU2Nzg5AA==", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5', '6', '7', '8', '9', 0
}));
assertEquals("MTIzNDU2Nzg59g==", Base64.encodeBase64(new byte[] {
'1', '2', '3', '4', '5', '6', '7', '8', '9', -10
}));
assertTrue(Arrays.equals(new byte[0], Base64.decodeBase64("")));
assertTrue(Arrays.equals(new byte[] {
'1'
}, Base64.decodeBase64("MQ==")));
assertTrue(Arrays.equals(new byte[] {
'1', '2', '3', '4', '5', '6', '7'
}, Base64.decodeBase64("MTIzNDU2Nw==")));
assertTrue(Arrays.equals(new byte[] {
'1', '2', '3', '4', '5', '6', '7', '8', '9', -10
}, Base64.decodeBase64("MTIzNDU2Nzg59g==")));
}
}