zeichenmaschine/src/test/java/schule/ngb/zm/ColorTest.java

256 lines
5.5 KiB
Java

package schule.ngb.zm;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class ColorTest {
@Test
public void init() {
Color c;
c = new Color();
assertEquals(0, c.getRed());
assertEquals(0, c.getGreen());
assertEquals(0, c.getBlue());
assertEquals(255, c.getAlpha());
c = Color.BLUE;
assertEquals(49, c.getRed());
assertEquals(197, c.getGreen());
assertEquals(244, c.getBlue());
assertEquals(255, c.getAlpha());
c = new Color(50, 133, 64, 33);
assertEquals(50, c.getRed());
assertEquals(133, c.getGreen());
assertEquals(64, c.getBlue());
assertEquals(33, c.getAlpha());
c = new Color(240, 80, 37);
assertEquals(Color.RED, c);
c = new Color(33, 50);
assertEquals(33, c.getRed());
assertEquals(33, c.getGreen());
assertEquals(33, c.getBlue());
assertEquals(50, c.getAlpha());
}
@Test
public void parse() {
Color c;
c = Color.getRGBColor(0x00FF00FF);
assertEquals(0x00FF00FF, c.getRGBA());
assertEquals(255, c.getRed());
assertEquals(0, c.getGreen());
assertEquals(255, c.getBlue());
assertEquals(0, c.getAlpha());
c = Color.getRGBColor(0x33FF3333);
assertEquals(0x33FF3333, c.getRGBA());
assertEquals(255, c.getRed());
assertEquals(51, c.getGreen());
assertEquals(51, c.getBlue());
assertEquals(51, c.getAlpha());
c = Color.parseHexcode("FF00FF");
assertEquals(0xFFFF00FF, c.getRGBA());
assertEquals(255, c.getRed());
assertEquals(0, c.getGreen());
assertEquals(255, c.getBlue());
assertEquals(255, c.getAlpha());
c = Color.parseHexcode("#FF00FF00");
assertEquals(0x00FF00FF, c.getRGBA());
assertEquals(255, c.getRed());
assertEquals(0, c.getGreen());
assertEquals(255, c.getBlue());
assertEquals(0, c.getAlpha());
c = Color.parseHexcode("#333");
assertEquals(0xFF333333, c.getRGBA());
assertEquals(51, c.getRed());
assertEquals(51, c.getGreen());
assertEquals(51, c.getBlue());
assertEquals(255, c.getAlpha());
c = Color.parseHexcode("#33FF0033");
assertEquals(0x3333FF00, c.getRGBA());
assertEquals(51, c.getRed());
assertEquals(255, c.getGreen());
assertEquals(0, c.getBlue());
assertEquals(51, c.getAlpha());
}
@Test
void testEquals() {
Color c1 = new Color(254, 98, 12);
Color c2 = new Color(254, 98, 12);
assertNotSame(c1, c2);
assertEquals(c1, c2);
assertEquals(c1, c1);
c2 = new Color(c1);
assertNotSame(c1, c2);
assertEquals(c1, c2);
Color yellow = new Color(255, 255, 0);
assertNotEquals(java.awt.Color.YELLOW, yellow);
assertEquals(yellow, java.awt.Color.YELLOW);
assertNotEquals(Color.YELLOW, java.awt.Color.YELLOW);
}
@Test
void construct() {
Color c;
// Empty color is white
c = new Color();
assertEquals(Color.BLACK, c);
// One arg is shade of gray
c = new Color(255);
assertEquals(Color.WHITE, c);
c = new Color(0);
assertEquals(Color.BLACK, c);
c = new Color(64);
assertEquals(Color.DARKGRAY, c);
c = new Color(192);
assertEquals(Color.LIGHTGRAY, c);
// RGB colors
c = new Color(0,0,0);
assertEquals(Color.BLACK, c);
c = new Color(255,0,0);
assertEquals(java.awt.Color.RED, c.getJavaColor());
c = new Color(0,255,0);
assertEquals(java.awt.Color.GREEN, c.getJavaColor());
c = new Color(0,0,255);
assertEquals(java.awt.Color.BLUE, c.getJavaColor());
// From java.awt.Color
c = new Color(java.awt.Color.YELLOW);
assertEquals(java.awt.Color.YELLOW, c.getJavaColor());
}
@Test
void getRGBColor() {
Color c1 = Color.getRGBColor(0xFFF05025);
assertEquals(Color.RED, c1);
}
@Test
void getHSBColor() {
}
@Test
void getHSLColor() {
}
@Test
void parseHexcode() {
Color c;
c = Color.parseHexcode("#f05025");
assertEquals(Color.RED, c);
c = Color.parseHexcode("#F8EF22");
assertEquals(Color.YELLOW, c);
c = Color.parseHexcode("#FF40ff");
assertEquals(new Color(255, 64, 255), c);
// TODO: Test hexcodes of length 3, 6 and 9
// TODO: Test malformed hexcodes
}
@Test
void parseString() {
Color c;
c = Color.parseString("red");
assertEquals(new Color(255, 0, 0), c);
c = Color.parseString("zombie green");
assertEquals(Color.parseHexcode("#54c571"), c);
c = Color.parseString("algae green");
assertEquals(new Color(100, 233, 134), c);
c = Color.parseString("light slate gray");
assertEquals(Color.parseHexcode("#6d7b8d"), c);
}
@Test
void morph() {
}
@Test
void RGBtoHSL() {
Color c;
float[] hsl;
c = new Color(255, 0, 0);
hsl = Color.RGBtoHSL(c.getRGBA(), null);
assertArrayEquals(new float[]{0f,1f,.5f}, hsl, 0.0001f);
c = new Color(255, 33, 64);
hsl = Color.RGBtoHSL(c.getRGBA(), null);
assertEquals(352, hsl[0], 1.0f);
assertEquals(1.0f, hsl[1], .0001f);
assertEquals(.5647f, hsl[2], .0001f);
}
@Test
void HSLtoRGB() {
}
@Test
void copy() {
}
@Test
void getRGBA() {
Color yellow = new Color(255, 255, 0);
assertEquals(java.awt.Color.YELLOW.getRGB(), yellow.getRGBA());
}
@Test
void getRed() {
Color clr = new Color(123, 92, 0);
assertEquals(123, clr.getRed());
}
@Test
void getGreen() {
Color clr = new Color(123, 92, 0);
assertEquals(92, clr.getGreen());
}
@Test
void getBlue() {
Color clr = new Color(123, 92, 0);
assertEquals(0, clr.getBlue());
}
@Test
void getAlpha() {
Color clr = new Color(123, 92, 0);
assertEquals(255, clr.getAlpha());
Color clr2 = new Color(123, 92, 0, 45);
assertEquals(45, clr2.getAlpha());
}
@Test
void getJavaColor() {
assertEquals(new java.awt.Color(255, 31, 124), new Color(255, 31, 124).getJavaColor());
}
@Test
void brighter() {
}
@Test
void darker() {
}
}