package com.intellij.ide.ui; import junit.framework.TestCase; import java.awt.image.ImageFilter; import java.awt.image.RGBImageFilter; public final class ColorBlindnessTest extends TestCase { public void testProtanopiaDaltonization() { testZeroFilter(DaltonizationFilter.forProtanopia(0.0)); compareFilters(DaltonizationFilter.forProtanopia(1.0), DaltonizationFilter.protanopia); } public void testDeuteranopiaDaltonization() { testZeroFilter(DaltonizationFilter.forDeuteranopia(0.0)); compareFilters(DaltonizationFilter.forDeuteranopia(1.0), DaltonizationFilter.deuteranopia); } public void testTritanopiaDaltonization() { testZeroFilter(DaltonizationFilter.forTritanopia(0.0)); compareFilters(DaltonizationFilter.forTritanopia(1.0), DaltonizationFilter.tritanopia); } public void testAchromatopsiaSimulation() { testZeroFilter(SimulationFilter.forAchromatopsia(0.0)); compareFilters(SimulationFilter.forAchromatopsia(1.0), SimulationFilter.achromatopsia); } private static void testZeroFilter(ImageFilter filter) { RGBImageFilter rgb = (RGBImageFilter)filter; for (int i = 0; i < 0x01000000; i++) { assertEquals(i, rgb.filterRGB(0, 0, i)); } } private static void compareFilters(ImageFilter one, ImageFilter two) { RGBImageFilter rgb1 = (RGBImageFilter)one; RGBImageFilter rgb2 = (RGBImageFilter)two; for (int i = 0; i < 0x01000000; i++) { assertEquals(rgb1.filterRGB(0, 0, i), rgb2.filterRGB(0, 0, i)); } } }