/** * Returns the matrix elements as a group of parameters values. The number of parameters depends * on the matrix size. Only matrix elements different from their default value will be included * in this group. * * @param matrix The matrix to returns as a group of parameters. * @return A copy of the parameter values for this math transform. */ static ParameterValueGroup getParameterValues(final Matrix matrix) { final MatrixParameters values; values = (MatrixParameters) ProviderAffine.PARAMETERS.createValue(); values.setMatrix(matrix); return values; }
/** Tests the storage of matrix parameters. */ @Test public void testMatrixEdit() { final int size = 8; final Random random = new Random(47821365); final GeneralMatrix matrix = new GeneralMatrix(size); for (int j = 0; j < size; j++) { for (int i = 0; i < size; i++) { matrix.setElement(j, i, 200 * random.nextDouble() - 100); } } final MatrixParameterDescriptors descriptor = new MatrixParameterDescriptors(Collections.singletonMap("name", "Test")); for (int height = 2; height <= size; height++) { for (int width = 2; width <= size; width++) { MatrixParameters parameters = (MatrixParameters) descriptor.createValue(); GeneralMatrix copy = matrix.clone(); copy.setSize(height, width); parameters.setMatrix(copy); assertEquals( "height", height, ((Parameter) parameters.parameter("num_row")).intValue()); assertEquals( "width", width, ((Parameter) parameters.parameter("num_col")).intValue()); assertTrue("equals", copy.equals(parameters.getMatrix(), 0)); assertEquals("equals", parameters, parameters.clone()); } } }