mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
[wpilib] Color: Improve string support (#8403)
Now rgb() and color constants are supported. Changed from constructor to fromString() factory function to enable directly returning color constant values.
This commit is contained in:
@@ -55,21 +55,55 @@ class ColorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void testConstructFromHexString() {
|
||||
var color = new Color("#FF8040");
|
||||
void testFromHexString() {
|
||||
var color = Color.fromString("#FF8040");
|
||||
|
||||
assertEquals(1.0, color.red, 1e-2);
|
||||
assertEquals(0.5, color.green, 1e-2);
|
||||
assertEquals(0.25, color.blue, 1e-2);
|
||||
|
||||
// No leading #
|
||||
assertThrows(IllegalArgumentException.class, () -> new Color("112233"));
|
||||
assertThrows(IllegalArgumentException.class, () -> Color.fromString("112233"));
|
||||
|
||||
// Too long
|
||||
assertThrows(IllegalArgumentException.class, () -> new Color("#11223344"));
|
||||
assertThrows(IllegalArgumentException.class, () -> Color.fromString("#11223344"));
|
||||
|
||||
// Invalid hex characters
|
||||
assertThrows(IllegalArgumentException.class, () -> new Color("#$$$$$$"));
|
||||
assertThrows(IllegalArgumentException.class, () -> Color.fromString("#$$$$$$"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFromRGBString() {
|
||||
var color = Color.fromString("rgb(255,128,64)");
|
||||
|
||||
assertEquals(1.0, color.red, 1e-2);
|
||||
assertEquals(0.5, color.green, 1e-2);
|
||||
assertEquals(0.25, color.blue, 1e-2);
|
||||
|
||||
// Wrong number of components
|
||||
assertThrows(IllegalArgumentException.class, () -> Color.fromString("rgb(255,128)"));
|
||||
|
||||
// Invalid integer
|
||||
assertThrows(IllegalArgumentException.class, () -> Color.fromString("rgb(255,xx,64)"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFromConstantName() {
|
||||
var color = Color.fromString("red");
|
||||
|
||||
assertEquals(1.0, color.red, 1e-2);
|
||||
assertEquals(0.0, color.green, 1e-2);
|
||||
assertEquals(0.0, color.blue, 1e-2);
|
||||
|
||||
// with k prefix
|
||||
color = Color.fromString("kRed");
|
||||
|
||||
assertEquals(1.0, color.red, 1e-2);
|
||||
assertEquals(0.0, color.green, 1e-2);
|
||||
assertEquals(0.0, color.blue, 1e-2);
|
||||
|
||||
// Unknown name
|
||||
assertThrows(IllegalArgumentException.class, () -> Color.fromString("unknowncolor"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user