• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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