package org.jrebirth.af.core.resource.color; import static org.junit.Assert.assertEquals; import javafx.scene.paint.Color; import org.jrebirth.af.api.resource.color.ColorItem; import org.jrebirth.af.core.resource.ResourceBuilders; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; /** * The class <strong>ColorTest</strong>. * * @author Sébastien Bordes */ public class ColorTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Before public void setUp() throws Exception { } @Test public void grayColor() { checkGrayColor(TestColors.TEST_COLOR_GRAY_1); checkGrayColor(TestColors.TEST_COLOR_GRAY_2); checkGrayColor(TestColors.TEST_COLOR_GRAY_3); } private void checkGrayColor(final ColorItem colorItem) { final Color color = colorItem.get(); final GrayColor wc = (GrayColor) ResourceBuilders.COLOR_BUILDER.getParam(colorItem); // compareRoundedValues(color.getRed(), convert255To1(wc.hex().substring(0, 2))); // compareRoundedValues(color.getGreen(), convert255To1(wc.hex().substring(2, 4))); // compareRoundedValues(color.getBlue(), convert255To1(wc.hex().substring(4, 6))); assertEquals(color.getOpacity(), wc.opacity(), 0.1); } @Test public void hsbColor() { checkHsbColor(TestColors.TEST_COLOR_HSB_1); checkHsbColor(TestColors.TEST_COLOR_HSB_2); checkHsbColor(TestColors.TEST_COLOR_HSB_3); } private void checkHsbColor(final ColorItem colorItem) { final Color color = colorItem.get(); final HSBColor wc = (HSBColor) ResourceBuilders.COLOR_BUILDER.getParam(colorItem); assertEquals(color.getHue(), wc.hue(), 1.0); assertEquals(color.getSaturation(), wc.saturation(), 0.000001); assertEquals(color.getBrightness(), wc.brightness(), 0.000001); assertEquals(color.getOpacity(), wc.opacity(), 0.1); } @Test public void webColor() { checkWebColor(TestColors.TEST_COLOR_WEB_1); checkWebColor(TestColors.TEST_COLOR_WEB_2); checkWebColor(TestColors.TEST_COLOR_WEB_3); } private void checkWebColor(final ColorItem colorItem) { final Color color = colorItem.get(); final WebColor wc = (WebColor) ResourceBuilders.COLOR_BUILDER.getParam(colorItem); assertEquals(color.getRed(), convertHexToDouble(wc.hex().substring(0, 2)), 0.000001); assertEquals(color.getGreen(), convertHexToDouble(wc.hex().substring(2, 4)), 0.000001); assertEquals(color.getBlue(), convertHexToDouble(wc.hex().substring(4, 6)), 0.000001); assertEquals(color.getOpacity(), wc.opacity(), 0.1); } @Test public void rgb01Color() { checkRgb01Color(TestColors.TEST_COLOR_RGB01_1); checkRgb01Color(TestColors.TEST_COLOR_RGB01_2); checkRgb01Color(TestColors.TEST_COLOR_RGB01_3); } private void checkRgb01Color(final ColorItem colorItem) { final Color color = colorItem.get(); final RGB01Color wc = (RGB01Color) ResourceBuilders.COLOR_BUILDER.getParam(colorItem); assertEquals(color.getRed(), wc.red(), 0.000001); assertEquals(color.getGreen(), wc.green(), 0.000001); assertEquals(color.getBlue(), wc.blue(), 0.000001); assertEquals(color.getOpacity(), wc.opacity(), 0.1); } @Test public void rgb255Color() { checkRgb255Color(TestColors.TEST_COLOR_RGB255_1); checkRgb255Color(TestColors.TEST_COLOR_RGB255_2); checkRgb255Color(TestColors.TEST_COLOR_RGB255_3); } private void checkRgb255Color(final ColorItem colorItem) { final Color color = colorItem.get(); final RGB255Color wc = (RGB255Color) ResourceBuilders.COLOR_BUILDER.getParam(colorItem); assertEquals(color.getRed(), convert255To1(wc.red()), 0.000001); assertEquals(color.getGreen(), convert255To1(wc.green()), 0.000001); assertEquals(color.getBlue(), convert255To1(wc.blue()), 0.000001); assertEquals(color.getOpacity(), wc.opacity(), 0.1); } private double convertHexToDouble(final String hexaSingleColor) { final int i = Integer.parseInt(hexaSingleColor, 16); return convert255To1(i); } private double convert255To1(final int i) { return i == 0 ? i : i / 255.0; } @After public void tearDown() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } }