| 99 | } |
| 100 | |
| 101 | public static void main(String args[]) |
| 102 | { |
| 103 | Random r = new Random(); |
| 104 | |
| 105 | // self test. |
| 106 | |
| 107 | for (int iter = 0; iter < 10000; iter++) |
| 108 | { |
| 109 | int len = r.nextInt(500); |
| 110 | byte in[] = new byte[len]; |
| 111 | for (int i = 0; i < in.length; i++) |
| 112 | in[i] = (byte) r.nextInt(256); |
| 113 | |
| 114 | String enc[] = encode(in); |
| 115 | |
| 116 | byte out[] = decode(enc); |
| 117 | |
| 118 | // if (false) { |
| 119 | // for (int i = 0; i < enc.length; i++) |
| 120 | // System.out.println(enc[i]); |
| 121 | // System.out.println(""); |
| 122 | // } |
| 123 | |
| 124 | System.out.printf("%4d %4d\n", in.length, out.length); |
| 125 | |
| 126 | assert (in.length == out.length); |
| 127 | if (true) |
| 128 | { |
| 129 | for (int i = 0; i < in.length; i++) |
| 130 | { |
| 131 | // System.out.printf("%2x %2x\n", in[i], out[i]); |
| 132 | assert (in[i] == out[i]); |
| 133 | } |
| 134 | } |
| 135 | |
| 136 | } |
| 137 | |
| 138 | System.out.println("done"); |
| 139 | } |
| 140 | } |