Example #1
0
  private static boolean roundtrip(File target) {
    try {
      System.out.print("Testing " + target.getName() + " -");

      System.out.print(" Decode: ");
      Object data = Utils.decodeFile(dec, target);
      System.out.print("OK");
      ok_dec++;
      if (verbose) {
        System.out.println("\nDecoding Done: " + Utils.dump(data) + "\n");
      }
      System.out.print(" Encode: ");
      byte[] encoded = enc.write(data).getData();
      System.out.print("OK");
      ok_enc++;
      if (writeEncoded) {
        FileOutputStream fos =
            new FileOutputStream(new File(target.getAbsolutePath() + "-java.out"));
        fos.write(encoded);
        fos.close();
      }

      FileInputStream fis = new FileInputStream(target);
      byte[] buf = new byte[(int) target.length()];
      fis.read(buf);
      fis.close();
      if (verbose) {
        System.out.println();
        System.out.println("From file: " + Utils.hexStringFromByteArray(buf, 4));
        System.out.println("Encoded  : " + Utils.hexStringFromByteArray(encoded, 4));
        System.out.println("\nStructure: " + sd.decodeFile(target));
      }
      if (testRoundtrip) {
        System.out.print(" Roundtrip: ");
        Assert.assertArrayEquals("Roundtrip fail for: " + target.getName(), buf, encoded);
        System.out.println("OK");
        ok_round++;
      } else {
        System.out.println();
      }
    } catch (Exception e) {
      e.printStackTrace();
      return false;
    }

    return true;
  }