@Test
public void testRlpDecode() {

    int pos = 0;
    String emptyString;
    byte[] decodedData;
    Object[] decodedList;
    emptyString = (String) decode(Hex.decode(result01), pos).getDecoded();
    assertEquals("", emptyString);
    emptyString = (String) decode(Hex.decode(result02), pos).getDecoded();
    assertEquals(test02, emptyString);
    decodedData = (byte[]) decode(Hex.decode(result03), pos).getDecoded();
    assertEquals(test03, bytesToAscii(decodedData));
    decodedData = (byte[]) decode(Hex.decode(result04), pos).getDecoded();
    assertEquals(test04, bytesToAscii(decodedData));
    decodedData = (byte[]) decode(Hex.decode(result05), pos).getDecoded();
    assertEquals(test05, bytesToAscii(decodedData));
    decodedList = (Object[]) decode(Hex.decode(result06), pos).getDecoded();
    assertEquals(test06[0], bytesToAscii((byte[]) decodedList[0]));
    assertEquals(test06[1], bytesToAscii((byte[]) decodedList[1]));
    decodedList = (Object[]) decode(Hex.decode(result07), pos).getDecoded();
    assertEquals(test07[0], bytesToAscii((byte[]) decodedList[0]));
    assertEquals(test07[1], bytesToAscii((byte[]) decodedList[1]));
    assertEquals(test07[2], bytesToAscii((byte[]) decodedList[2]));
    // 1
    decodedData = (byte[]) decode(Hex.decode(result08), pos).getDecoded();
    assertEquals(test08, byteArrayToInt(decodedData));
    // 10
    decodedData = (byte[]) decode(Hex.decode(result09), pos).getDecoded();
    assertEquals(test09, byteArrayToInt(decodedData));
    // 100
    decodedData = (byte[]) decode(Hex.decode(result10), pos).getDecoded();
    assertEquals(test10, byteArrayToInt(decodedData));
    // 1000
    decodedData = (byte[]) decode(Hex.decode(result11), pos).getDecoded();
    assertEquals(test11, byteArrayToInt(decodedData));
    decodedData = (byte[]) decode(Hex.decode(result12), pos).getDecoded();
    assertTrue(test12.compareTo(new BigInteger(1, decodedData)) == 0);
    decodedData = (byte[]) decode(Hex.decode(result13), pos).getDecoded();
    assertTrue(test13.compareTo(new BigInteger(1, decodedData)) == 0);
    // Need to test with different expected value, because decoding doesn't recognize types
    Object testObject1 = decode(Hex.decode(result14), pos).getDecoded();
    assertTrue(DeepEquals.deepEquals(expected14, testObject1));
    Object testObject2 = decode(Hex.decode(result15), pos).getDecoded();
    assertTrue(DeepEquals.deepEquals(test15, testObject2));
    // Need to test with different expected value, because decoding doesn't recognize types
    Object testObject3 = decode(Hex.decode(result16), pos).getDecoded();
    assertTrue(DeepEquals.deepEquals(expected16, testObject3));
}