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; }