1 package android.graphics; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import androidx.test.ext.junit.runners.AndroidJUnit4; 6 import org.junit.Test; 7 import org.junit.runner.RunWith; 8 import org.robolectric.annotation.internal.DoNotInstrument; 9 10 /** Compatibility tests for {@link Color} */ 11 @DoNotInstrument 12 @RunWith(AndroidJUnit4.class) 13 public class ColorTest { 14 @Test testRgb()15 public void testRgb() { 16 int color = Color.rgb(160, 160, 160); 17 assertThat(color).isEqualTo(-6250336); 18 } 19 20 @Test testArgb()21 public void testArgb() { 22 int color = Color.argb(100, 160, 160, 160); 23 assertThat(color).isEqualTo(1688248480); 24 } 25 26 @Test testParseColor()27 public void testParseColor() { 28 assertThat(Color.parseColor("#ffffffff")).isEqualTo(-1); 29 assertThat(Color.parseColor("#00000000")).isEqualTo(0); 30 31 assertThat(Color.parseColor("#ffaabbcc")).isEqualTo(-5588020); 32 } 33 34 @Test testParseColorWithStringName()35 public void testParseColorWithStringName() { 36 assertThat(Color.parseColor("blue")).isEqualTo(-16776961); 37 assertThat(Color.parseColor("black")).isEqualTo(-16777216); 38 assertThat(Color.parseColor("green")).isEqualTo(-16711936); 39 } 40 41 @Test colorToHSVShouldBeCorrectForBlue()42 public void colorToHSVShouldBeCorrectForBlue() { 43 float[] hsv = new float[3]; 44 Color.colorToHSV(Color.BLUE, hsv); 45 46 assertThat(hsv[0]).isEqualTo(240f); 47 assertThat(hsv[1]).isEqualTo(1.0f); 48 assertThat(hsv[2]).isEqualTo(1.0f); 49 } 50 51 @Test colorToHSVShouldBeCorrectForBlack()52 public void colorToHSVShouldBeCorrectForBlack() { 53 float[] hsv = new float[3]; 54 Color.colorToHSV(Color.BLACK, hsv); 55 56 assertThat(hsv[0]).isEqualTo(0f); 57 assertThat(hsv[1]).isEqualTo(0f); 58 assertThat(hsv[2]).isEqualTo(0f); 59 } 60 61 @Test RGBToHSVShouldBeCorrectForBlue()62 public void RGBToHSVShouldBeCorrectForBlue() { 63 float[] hsv = new float[3]; 64 Color.RGBToHSV(0, 0, 255, hsv); 65 66 assertThat(hsv[0]).isEqualTo(240f); 67 assertThat(hsv[1]).isEqualTo(1.0f); 68 assertThat(hsv[2]).isEqualTo(1.0f); 69 } 70 71 @Test HSVToColorShouldReverseColorToHSV()72 public void HSVToColorShouldReverseColorToHSV() { 73 float[] hsv = new float[3]; 74 Color.colorToHSV(Color.RED, hsv); 75 76 assertThat(Color.HSVToColor(hsv)).isEqualTo(Color.RED); 77 } 78 79 @Test HSVToColorValueShouldBePinned()80 public void HSVToColorValueShouldBePinned() { 81 assertThat(Color.HSVToColor(new float[] {0f, 0f, -1.0f})).isEqualTo(Color.BLACK); 82 assertThat(Color.HSVToColor(new float[] {0f, 0f, 2.0f})).isEqualTo(Color.WHITE); 83 } 84 85 @Test HSVToColorSaturationShouldBePinned()86 public void HSVToColorSaturationShouldBePinned() { 87 assertThat(Color.HSVToColor(new float[] {0f, -1.0f, 0.5f})).isEqualTo(0xff808080); 88 assertThat(Color.HSVToColor(new float[] {0f, 2.0f, 0.5f})).isEqualTo(0xff800000); 89 } 90 } 91