package org.robolectric.shadows;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.TestRunners;
import android.graphics.Color;
import static org.assertj.core.api.Assertions.*;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowColorTest {
@Test
public void testRgb() {
int color = Color.rgb(160, 160, 160);
assertThat(color).isEqualTo(-6250336);
}
@Test
public void testArgb() {
int color = Color.argb(100, 160, 160, 160);
assertThat(color).isEqualTo(1688248480);
}
@Test
public void testParseColor() throws Exception {
assertThat(Color.parseColor("#ffffffff")).isEqualTo(-1);
assertThat(Color.parseColor("#00000000")).isEqualTo(0);
assertThat(Color.parseColor("#ffaabbcc")).isEqualTo(-5588020);
}
@Test
public void testParseColorWithStringName() {
assertThat(Color.parseColor("blue")).isEqualTo(-16776961);
assertThat(Color.parseColor("black")).isEqualTo(-16777216);
assertThat(Color.parseColor("green")).isEqualTo(-16711936);
}
@Test
public void colorToHSVShouldBeCorrectForBlue() {
float[] hsv = new float[3];
Color.colorToHSV(Color.BLUE, hsv);
assertThat(hsv[0]).isEqualTo(240f);
assertThat(hsv[1]).isEqualTo(1.0f);
assertThat(hsv[2]).isEqualTo(1.0f);
}
@Test
public void colorToHSVShouldBeCorrectForBlack() {
float[] hsv = new float[3];
Color.colorToHSV(Color.BLACK, hsv);
assertThat(hsv[0]).isEqualTo(0f);
assertThat(hsv[1]).isEqualTo(0f);
assertThat(hsv[2]).isEqualTo(0f);
}
@Test
public void RGBToHSVShouldBeCorrectForBlue() {
float[] hsv = new float[3];
Color.RGBToHSV(0, 0, 255, hsv);
assertThat(hsv[0]).isEqualTo(240f);
assertThat(hsv[1]).isEqualTo(1.0f);
assertThat(hsv[2]).isEqualTo(1.0f);
}
@Test
public void HSVToColorShouldReverseColorToHSV() {
float[] hsv = new float[3];
Color.colorToHSV(Color.RED, hsv);
assertThat(Color.HSVToColor(hsv)).isEqualTo(Color.RED);
}
}