/* * Geotoolkit.org - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2009-2012, Open Source Geospatial Foundation (OSGeo) * (C) 2009-2012, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.image.jai; import java.awt.image.RenderedImage; import javax.media.jai.JAI; import javax.media.jai.ParameterBlockJAI; import javax.media.jai.RegistryElementDescriptor; import javax.media.jai.registry.RenderedRegistryMode; import org.apache.sis.test.DependsOn; import org.geotoolkit.image.SampleImage; import org.geotoolkit.image.SampleImageTestBase; import org.geotoolkit.internal.image.jai.MaskDescriptor; import org.junit.*; import static org.junit.Assert.*; /** * Tests {@link Mask}. * * @author Martin Desruisseaux (Geomatys) * @version 3.01 * * @since 3.00 */ @DependsOn(SilhouetteMaskTest.class) public final strictfp class MaskTest extends SampleImageTestBase { /** * Creates a new test case. */ public MaskTest() { super(Mask.class); } /** * Ensures that the JAI registration has been done. */ @Test @Ignore("Fails randomly, need investigation.") public void testRegistration() { final RegistryElementDescriptor descriptor = JAI.getDefaultInstance().getOperationRegistry() .getDescriptor(RenderedRegistryMode.MODE_NAME, Mask.OPERATION_NAME); assertNotNull("Descriptor not found.", descriptor); assertTrue(descriptor instanceof MaskDescriptor); } /** * Applies the operation and tests the result with the expected one, using checksum. */ @Test @Ignore("Fails randomly, need investigation.") public void testOnRGB() { loadSampleImage(SampleImage.RGB_ROTATED); ParameterBlockJAI parameters = new ParameterBlockJAI(SilhouetteMask.OPERATION_NAME); RenderedImage mask = JAI.create(SilhouetteMask.OPERATION_NAME, parameters.addSource(image)); final double[] blueColor = new double[] {64, 64, 255}; parameters = new ParameterBlockJAI(Mask.OPERATION_NAME); image = JAI.create(Mask.OPERATION_NAME, parameters.addSource(image).addSource(mask).set(blueColor, 0)); assertCurrentChecksumEquals("testOnRGB", 2300860193L, 3418587197L); showCurrentImage("testOnRGB"); } /** * Applies the operation and tests the result with the expected one, using checksum. */ @Test @Ignore("Fails randomly, need investigation.") public void testOnIndexed() { loadSampleImage(SampleImage.INDEXED); ParameterBlockJAI parameters = new ParameterBlockJAI(SilhouetteMask.OPERATION_NAME); parameters.setParameter("background", new double[][] {{255}}); RenderedImage mask = JAI.create(SilhouetteMask.OPERATION_NAME, parameters.addSource(image)); final double[] newValues = new double[] {0}; parameters = new ParameterBlockJAI(Mask.OPERATION_NAME); image = JAI.create(Mask.OPERATION_NAME, parameters.addSource(image).addSource(mask).set(newValues, 0)); assertCurrentChecksumEquals("testOnIndexed", 3577749049L); showCurrentImage("testOnIndexed"); } }