Bitpedia Implementation of Base32 in Java - Test

This section provides a test program for the Java implementation of the Base32 encoding algorithm by the Bitcollider project.

To test Java implementation of the Base32 encoding algorithm listed in the previous section, I wrote this simple testing program:

/* BitpediaBase32Test.java
 * Copyright (c) 2010 HerongYang.com. All Rights Reserved.
 */
import java.io.*;
import org.bitpedia.util.*;
class BitpediaBase32Test {
   public static void main(String[] a) {
      if (a.length<1) {
         System.out.println("Usage:");
         System.out.println("java BitpediaBase32Test 1/2/3/4/5");
         return;
      }
      String test = a[0];
      String theInput = null;
      String theExpected = null;
      if (test.equals("1")) {
         theInput = "A";
         theExpected = "IE======";
      } else if (test.equals("2")) {
         theInput = "AB";
         theExpected = "IFBA====";
      } else if (test.equals("3")) {
         theInput = "ABC";
         theExpected = "IFBEG===";
      } else if (test.equals("4")) {
         theInput = "ABCD";
         theExpected = "IFBEGRA=";
      } else if (test.equals("5")) {
         theInput = "ABCDE";
         theExpected = "IFBEGRCF";
      } else {
         System.out.println("Usage:");
         System.out.println("java BitpediaBase32Test 1/2/3/4/5");
         return;
      }
      String theEncoded = Base32.encode(theInput.getBytes());
      byte[] theDecoded = Base32.decode(theEncoded);
      System.out.println("Input   : "+theInput);
      System.out.println("Encoded : "+theEncoded);
      System.out.println("Expected: "+theExpected);
      System.out.println("Decoded : "+new String(theDecoded));
      return;
   }
}

Here is the test result:

C:\herong\base32>javac BitpediaBase32Test.java

C:\herong\base32>java BitpediaBase32Test 1
Input   : A
Encoded : IE
Expected: IE======
Decoded : A

C:\herong\base32>java BitpediaBase32Test 2
Input   : AB
Encoded : IFBA
Expected: IFBA====
Decoded : AB

C:\herong\base32>java BitpediaBase32Test 3
Input   : ABC
Encoded : IFBEG
Expected: IFBEG===
Decoded : ABC

C:\herong\base32>java BitpediaBase32Test 4
Input   : ABCD
Encoded : IFBEGRA
Expected: IFBEGRA=
Decoded : ABCD

C:\herong\base32>java BitpediaBase32Test 5
Input   : ABCDE
Encoded : IFBEGRCF
Expected: IFBEGRCF
Decoded : ABCDE

As you can see from the test result, the Bitpedia implementation of the Base32 encoding algorithm does not add padding equal signs (=) as defined RFC 3548.

Table of Contents

 About This Book

 Base64 Encoding

 Base64 Encoding and Decoding Tools

 Base64URL - URL Safe Base64 Encoding

Base32 Encoding

 Base32 Encoding Algorithm

 Base32 Character Set Maps

 Bitpedia Implementation of Base32 in Java

Bitpedia Implementation of Base32 in Java - Test

 Andre's Implementation of Base32 in PHP

 Andre's Implementation of Base32 in PHP - Test

 madebits Implementation of Base32 in C++

 URL Encoding, URI Encoding, or Percent Encoding

 UUEncode Encoding

 References

 Full Version in PDF/EPUB