package jmathlibtests; /** helper class to compare different data objects from mathlib */ public class Compare { /**compare two dimensional numerical arrays*/ public static boolean ArrayEquals(double[][] a, double[][] b) { return ArrayEquals(a, b, 0); } /**compare two dimensional numerical arrays*/ public static boolean ArrayEquals(double[][] a, double[][] b, double tol) { // number of rows must be greater 0 and equal if (a == null) return false; if (b == null) return false; if (a.length < 1) return false; if (b.length < 1) return false; if (a.length != b.length) return false; // check all elements for (int y=0; y<a.length; y++) { // length of each row must be equal if (a[y].length != b[y].length) return false; // check individual elements for (int x=0; x<a[y].length; x++) { if (Math.abs(a[y][x] - b[y][x]) > tol) return false; } } // arrays are equal return true; } /**compare two dimensional boolean arrays*/ public static boolean ArrayEquals(boolean[][] a, boolean[][] b) { // number of rows must be greater 0 and equal if (a.length < 1) return false; if (b.length < 1) return false; if (a.length != b.length) return false; // check all elements for (int y=0; y<a.length; y++) { // length of each row must be equal if (a[y].length != b[y].length) return false; // check individual elements for (int x=0; x<a[y].length; x++) { if (a[y][x] != b[y][x]) return false; } } // arrays are equal return true; } }