Extract Base64.main() as a unit test.
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 10 Jul 2012 17:08:39 +0000 (17:08 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 10 Jul 2012 17:08:39 +0000 (17:08 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@879 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/util/Base64.java
core/test/net/sf/openrocket/util/Base64Test.java [new file with mode: 0644]

index 042d36715d41840522a586db27f4011055a18873..21fc949d5d12dfa1e548369f42f01ebabd35448a 100644 (file)
@@ -81,7 +81,7 @@ public class Base64 {
                        if (p==0)
                                break;
                        if (p!=4) {
-                               throw new IllegalArgumentException("Data ended when decoding Base64, p="+p);
+                               throw new IllegalArgumentException("Data ended when decoding Base64, data=" + data + ", p="+p);
                        }
                        
                        int l = decodeGroup(block, array, length);
@@ -166,67 +166,4 @@ public class Base64 {
                return 3;
        }
        
-       
-       
-       public static void main(String[] arg) {
-               Random rnd = new Random();
-               
-               for (int round=0; round < 1000; round++) {
-                       int n = rnd.nextInt(1000);
-                       n = 100000;
-                       
-                       byte[] array = new byte[n];
-                       rnd.nextBytes(array);
-
-                       String encoded = encode(array);
-                       
-                       System.out.println(encoded);
-                       System.exit(0);
-//                     for (int i=0; i<1000; i++) {
-//                             int pos = rnd.nextInt(encoded.length());
-//                             String s1 = encoded.substring(0, pos);
-//                             String s2 = encoded.substring(pos);
-//                             switch (rnd.nextInt(15)) {
-//                             case 0:
-//                                     encoded = s1 + " " + s2;
-//                                     break;
-//                             case 1:
-//                                     encoded = s1 + "\u0009" + s2;
-//                                     break;
-//                             case 2:
-//                                     encoded = s1 + "\n" + s2;
-//                                     break;
-//                             case 3:
-//                                     encoded = s1 + "\u000B" + s2;
-//                                     break;
-//                             case 4:
-//                                     encoded = s1 + "\r" + s2;
-//                                     break;
-//                             case 5:
-//                                     encoded = s1 + "\u000C" + s2;
-//                                     break;
-//                             case 6:
-//                                     encoded = s1 + "\u001C" + s2;
-//                                     break;
-//                             }
-//                     }
-                       
-                       byte[] decoded = null;
-                       try {
-                               decoded = decode(encoded);
-                       } catch (IllegalArgumentException e) {
-                               e.printStackTrace();
-                               System.err.println("Bad data:\n"+encoded);
-                               System.exit(1);
-                       }
-                       
-                       if (!Arrays.equals(array, decoded)) {
-                               System.err.println("Data differs!  n="+n);
-                               System.exit(1);
-                       }
-                       System.out.println("n="+n+" ok!");
-               }
-       }
-       
-       
 }
diff --git a/core/test/net/sf/openrocket/util/Base64Test.java b/core/test/net/sf/openrocket/util/Base64Test.java
new file mode 100644 (file)
index 0000000..edf1300
--- /dev/null
@@ -0,0 +1,42 @@
+package net.sf.openrocket.util;
+
+import java.util.Arrays;
+import java.util.Random;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class Base64Test {
+
+       @Test
+       public void oldMainTest() throws Exception {
+
+               // TODO - this test case should probably be less random and more targeted to
+               // special cases such as:
+               // null input
+               // empty input
+               // decoding bad string
+               
+               Random rnd = new Random();
+
+               for (int round=0; round < 1000; round++) {
+                       int n = rnd.nextInt(1000);
+                       n = 100000;
+
+                       byte[] array = new byte[n];
+                       rnd.nextBytes(array);
+
+                       String encoded = Base64.encode(array);
+
+                       byte[] decoded = null;
+                       decoded = Base64.decode(encoded);
+
+                       if (!Arrays.equals(array, decoded)) {
+                               fail("Data differs!  n="+n);
+                       }
+                       System.out.println("n="+n+" ok!");
+
+               }
+       }
+}
\ No newline at end of file