[wpiutil] Rename Color constants to all caps

This commit is contained in:
Peter Johnson
2026-03-15 20:46:45 -07:00
parent 8af6bd354e
commit e5107e7e00
19 changed files with 1109 additions and 1112 deletions

View File

@@ -53,19 +53,19 @@ class AddressableLEDBufferTest {
@Test
void getColorTest() {
AddressableLEDBuffer buffer = new AddressableLEDBuffer(4);
final Color8Bit denimColor8Bit = new Color8Bit(Color.kDenim);
final Color8Bit firstBlueColor8Bit = new Color8Bit(Color.kFirstBlue);
final Color8Bit firstRedColor8Bit = new Color8Bit(Color.kFirstRed);
final Color8Bit denimColor8Bit = new Color8Bit(Color.DENIM);
final Color8Bit firstBlueColor8Bit = new Color8Bit(Color.FIRST_BLUE);
final Color8Bit firstRedColor8Bit = new Color8Bit(Color.FIRST_RED);
buffer.setLED(0, Color.kFirstBlue);
buffer.setLED(0, Color.FIRST_BLUE);
buffer.setLED(1, denimColor8Bit);
buffer.setLED(2, Color.kFirstRed);
buffer.setLED(3, Color.kFirstBlue);
buffer.setLED(2, Color.FIRST_RED);
buffer.setLED(3, Color.FIRST_BLUE);
assertEquals(Color.kFirstBlue, buffer.getLED(0));
assertEquals(Color.kDenim, buffer.getLED(1));
assertEquals(Color.kFirstRed, buffer.getLED(2));
assertEquals(Color.kFirstBlue, buffer.getLED(3));
assertEquals(Color.FIRST_BLUE, buffer.getLED(0));
assertEquals(Color.DENIM, buffer.getLED(1));
assertEquals(Color.FIRST_RED, buffer.getLED(2));
assertEquals(Color.FIRST_BLUE, buffer.getLED(3));
assertEquals(firstBlueColor8Bit, buffer.getLED8Bit(0));
assertEquals(denimColor8Bit, buffer.getLED8Bit(1));
assertEquals(firstRedColor8Bit, buffer.getLED8Bit(2));

View File

@@ -14,7 +14,7 @@ class AddressableLEDBufferViewTest {
void singleLED() {
var buffer = new AddressableLEDBuffer(10);
var view = new AddressableLEDBufferView(buffer, 5, 5);
var color = Color.kAqua;
var color = Color.AQUA;
view.setLED(0, color);
assertEquals(color, buffer.getLED(5));
assertEquals(color, view.getLED(0));
@@ -24,11 +24,11 @@ class AddressableLEDBufferViewTest {
void segment() {
var buffer = new AddressableLEDBuffer(10);
var view = new AddressableLEDBufferView(buffer, 2, 8);
view.setLED(0, Color.kAqua);
assertEquals(Color.kAqua, buffer.getLED(2));
view.setLED(0, Color.AQUA);
assertEquals(Color.AQUA, buffer.getLED(2));
view.setLED(6, Color.kAzure);
assertEquals(Color.kAzure, buffer.getLED(8));
view.setLED(6, Color.AZURE);
assertEquals(Color.AZURE, buffer.getLED(8));
}
@Test
@@ -37,33 +37,33 @@ class AddressableLEDBufferViewTest {
var view = new AddressableLEDBufferView(buffer, 8, 2);
// LED 0 in the view should write to LED 8 on the real buffer
view.setLED(0, Color.kAqua);
assertEquals(Color.kAqua, buffer.getLED(8));
view.setLED(0, Color.AQUA);
assertEquals(Color.AQUA, buffer.getLED(8));
// .. and LED 6 in the view should write to LED 2 on the real buffer
view.setLED(6, Color.kAzure);
assertEquals(Color.kAzure, buffer.getLED(2));
view.setLED(6, Color.AZURE);
assertEquals(Color.AZURE, buffer.getLED(2));
}
@Test
void fullManualReversed() {
var buffer = new AddressableLEDBuffer(10);
var view = new AddressableLEDBufferView(buffer, 9, 0);
view.setLED(0, Color.kWhite);
assertEquals(Color.kWhite, buffer.getLED(9));
view.setLED(0, Color.WHITE);
assertEquals(Color.WHITE, buffer.getLED(9));
buffer.setLED(8, Color.kRed);
assertEquals(Color.kRed, view.getLED(1));
buffer.setLED(8, Color.RED);
assertEquals(Color.RED, view.getLED(1));
}
@Test
void reversed() {
var buffer = new AddressableLEDBuffer(10);
var view = new AddressableLEDBufferView(buffer, 0, 9).reversed();
view.setLED(0, Color.kWhite);
assertEquals(Color.kWhite, buffer.getLED(9));
view.setLED(0, Color.WHITE);
assertEquals(Color.WHITE, buffer.getLED(9));
view.setLED(9, Color.kRed);
assertEquals(Color.kRed, buffer.getLED(0));
view.setLED(9, Color.RED);
assertEquals(Color.RED, buffer.getLED(0));
}
}

View File

@@ -16,16 +16,17 @@ import static org.wpilib.units.Units.Microseconds;
import static org.wpilib.units.Units.Percent;
import static org.wpilib.units.Units.Seconds;
import static org.wpilib.units.Units.Value;
import static org.wpilib.util.Color.kBlack;
import static org.wpilib.util.Color.kBlue;
import static org.wpilib.util.Color.kGreen;
import static org.wpilib.util.Color.kLime;
import static org.wpilib.util.Color.kMagenta;
import static org.wpilib.util.Color.kMidnightBlue;
import static org.wpilib.util.Color.kPurple;
import static org.wpilib.util.Color.kRed;
import static org.wpilib.util.Color.kWhite;
import static org.wpilib.util.Color.kYellow;
import static org.wpilib.util.Color.BLACK;
import static org.wpilib.util.Color.BLUE;
import static org.wpilib.util.Color.GREEN;
import static org.wpilib.util.Color.LIME;
import static org.wpilib.util.Color.MAGENTA;
import static org.wpilib.util.Color.MIDNIGHT_BLUE;
import static org.wpilib.util.Color.PURPLE;
import static org.wpilib.util.Color.RED;
import static org.wpilib.util.Color.ROSY_BROWN;
import static org.wpilib.util.Color.WHITE;
import static org.wpilib.util.Color.YELLOW;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -46,13 +47,13 @@ class LEDPatternTest {
for (int led = 0; led < reader.getLength(); led++) {
switch (led % 3) {
case 0:
writer.setLED(led, kWhite);
writer.setLED(led, WHITE);
break;
case 1:
writer.setLED(led, kYellow);
writer.setLED(led, YELLOW);
break;
case 2:
writer.setLED(led, kPurple);
writer.setLED(led, PURPLE);
break;
default:
fail("Bad test setup");
@@ -74,12 +75,12 @@ class LEDPatternTest {
@Test
void solidColor() {
LEDPattern pattern = LEDPattern.solid(kYellow);
LEDPattern pattern = LEDPattern.solid(YELLOW);
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
for (int i = 0; i < buffer.getLength(); i++) {
assertEquals(kYellow, buffer.getLED(i));
assertEquals(YELLOW, buffer.getLED(i));
}
}
@@ -94,74 +95,74 @@ class LEDPatternTest {
pattern.applyTo(buffer);
for (int i = 0; i < buffer.getLength(); i++) {
assertEquals(kBlack, buffer.getLED(i));
assertEquals(BLACK, buffer.getLED(i));
}
}
@Test
void gradient1SetsToSolid() {
LEDPattern pattern = LEDPattern.gradient(kContinuous, kYellow);
LEDPattern pattern = LEDPattern.gradient(kContinuous, YELLOW);
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
for (int i = 0; i < buffer.getLength(); i++) {
assertEquals(kYellow, buffer.getLED(i));
assertEquals(YELLOW, buffer.getLED(i));
}
}
@Test
void continuousGradient2Colors() {
LEDPattern pattern = LEDPattern.gradient(kContinuous, kYellow, kPurple);
LEDPattern pattern = LEDPattern.gradient(kContinuous, YELLOW, PURPLE);
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
assertColorEquals(kYellow, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(kYellow, kPurple, 25 / 49.0), buffer.getLED(25));
assertColorEquals(kPurple, buffer.getLED(49));
assertColorEquals(Color.lerpRGB(kYellow, kPurple, 25 / 49.0), buffer.getLED(73));
assertColorEquals(kYellow, buffer.getLED(98));
assertColorEquals(YELLOW, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(YELLOW, PURPLE, 25 / 49.0), buffer.getLED(25));
assertColorEquals(PURPLE, buffer.getLED(49));
assertColorEquals(Color.lerpRGB(YELLOW, PURPLE, 25 / 49.0), buffer.getLED(73));
assertColorEquals(YELLOW, buffer.getLED(98));
}
@Test
void discontinuousGradient2Colors() {
LEDPattern pattern = LEDPattern.gradient(kDiscontinuous, kYellow, kPurple);
LEDPattern pattern = LEDPattern.gradient(kDiscontinuous, YELLOW, PURPLE);
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
assertColorEquals(kYellow, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(kYellow, kPurple, 0.5), buffer.getLED(49));
assertColorEquals(kPurple, buffer.getLED(98));
assertColorEquals(YELLOW, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(YELLOW, PURPLE, 0.5), buffer.getLED(49));
assertColorEquals(PURPLE, buffer.getLED(98));
}
@Test
void gradient3Colors() {
LEDPattern pattern = LEDPattern.gradient(kContinuous, kYellow, kPurple, kWhite);
LEDPattern pattern = LEDPattern.gradient(kContinuous, YELLOW, PURPLE, WHITE);
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
assertColorEquals(kYellow, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(kYellow, kPurple, 25.0 / 33.0), buffer.getLED(25));
assertColorEquals(kPurple, buffer.getLED(33));
assertColorEquals(Color.lerpRGB(kPurple, kWhite, 25.0 / 33.0), buffer.getLED(58));
assertColorEquals(kWhite, buffer.getLED(66));
assertColorEquals(Color.lerpRGB(kWhite, kYellow, 25.0 / 33.0), buffer.getLED(91));
assertColorEquals(Color.lerpRGB(kWhite, kYellow, 32.0 / 33.0), buffer.getLED(98));
assertColorEquals(YELLOW, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(YELLOW, PURPLE, 25.0 / 33.0), buffer.getLED(25));
assertColorEquals(PURPLE, buffer.getLED(33));
assertColorEquals(Color.lerpRGB(PURPLE, WHITE, 25.0 / 33.0), buffer.getLED(58));
assertColorEquals(WHITE, buffer.getLED(66));
assertColorEquals(Color.lerpRGB(WHITE, YELLOW, 25.0 / 33.0), buffer.getLED(91));
assertColorEquals(Color.lerpRGB(WHITE, YELLOW, 32.0 / 33.0), buffer.getLED(98));
}
@Test
void discontinuousGradient3Colors() {
LEDPattern pattern = LEDPattern.gradient(kDiscontinuous, kYellow, kPurple, kWhite);
LEDPattern pattern = LEDPattern.gradient(kDiscontinuous, YELLOW, PURPLE, WHITE);
AddressableLEDBuffer buffer = new AddressableLEDBuffer(101);
pattern.applyTo(buffer);
assertColorEquals(kYellow, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(kYellow, kPurple, 0.5), buffer.getLED(25));
assertColorEquals(kPurple, buffer.getLED(50));
assertColorEquals(Color.lerpRGB(kPurple, kWhite, 0.5), buffer.getLED(75));
assertColorEquals(kWhite, buffer.getLED(100));
assertColorEquals(YELLOW, buffer.getLED(0));
assertColorEquals(Color.lerpRGB(YELLOW, PURPLE, 0.5), buffer.getLED(25));
assertColorEquals(PURPLE, buffer.getLED(50));
assertColorEquals(Color.lerpRGB(PURPLE, WHITE, 0.5), buffer.getLED(75));
assertColorEquals(WHITE, buffer.getLED(100));
}
@Test
@@ -175,36 +176,36 @@ class LEDPatternTest {
pattern.applyTo(buffer);
for (int i = 0; i < 99; i++) {
assertColorEquals(kBlack, buffer.getLED(i));
assertColorEquals(BLACK, buffer.getLED(i));
}
}
@Test
void step1SetsToSolid() {
LEDPattern pattern = LEDPattern.steps(Map.of(0.0, kYellow));
LEDPattern pattern = LEDPattern.steps(Map.of(0.0, YELLOW));
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
for (int i = 0; i < 99; i++) {
assertColorEquals(kYellow, buffer.getLED(i));
assertColorEquals(YELLOW, buffer.getLED(i));
}
}
@Test
void step1HalfSetsToHalfOffHalfColor() {
LEDPattern pattern = LEDPattern.steps(Map.of(0.50, kYellow));
LEDPattern pattern = LEDPattern.steps(Map.of(0.50, YELLOW));
AddressableLEDBuffer buffer = new AddressableLEDBuffer(99);
pattern.applyTo(buffer);
// [0, 48] should be black...
for (int i = 0; i < 49; i++) {
assertColorEquals(kBlack, buffer.getLED(i));
assertColorEquals(BLACK, buffer.getLED(i));
}
// ... and [49, <end>] should be the color that was set
for (int i = 49; i < buffer.getLength(); i++) {
assertColorEquals(kYellow, buffer.getLED(i));
assertColorEquals(YELLOW, buffer.getLED(i));
}
}
@@ -428,11 +429,11 @@ class LEDPatternTest {
void reverseSolid() {
var buffer = new AddressableLEDBuffer(90);
var pattern = LEDPattern.solid(Color.kRosyBrown).reversed();
var pattern = LEDPattern.solid(ROSY_BROWN).reversed();
pattern.applyTo(buffer);
for (int led = 0; led < buffer.getLength(); led++) {
assertColorEquals(Color.kRosyBrown, buffer.getLED(led));
assertColorEquals(ROSY_BROWN, buffer.getLED(led));
}
}
@@ -440,15 +441,15 @@ class LEDPatternTest {
void reverseSteps() {
var buffer = new AddressableLEDBuffer(100);
var pattern = LEDPattern.steps(Map.of(0, kWhite, 0.5, kYellow)).reversed();
var pattern = LEDPattern.steps(Map.of(0, WHITE, 0.5, YELLOW)).reversed();
pattern.applyTo(buffer);
// colors should be swapped; yellow first, then white
for (int led = 0; led < buffer.getLength(); led++) {
if (led < 50) {
assertColorEquals(kYellow, buffer.getLED(led));
assertColorEquals(YELLOW, buffer.getLED(led));
} else {
assertColorEquals(kWhite, buffer.getLED(led));
assertColorEquals(WHITE, buffer.getLED(led));
}
}
}
@@ -465,13 +466,13 @@ class LEDPatternTest {
Color color = buffer.getLED(led);
switch (led % 3) {
case 0:
assertColorEquals(kPurple, color);
assertColorEquals(PURPLE, color);
break;
case 1:
assertColorEquals(kWhite, color);
assertColorEquals(WHITE, color);
break;
case 2:
assertColorEquals(kYellow, color);
assertColorEquals(YELLOW, color);
break;
default:
fail("Bad test setup");
@@ -492,13 +493,13 @@ class LEDPatternTest {
Color color = buffer.getLED(led);
switch (led % 3) {
case 0:
assertColorEquals(kYellow, color);
assertColorEquals(YELLOW, color);
break;
case 1:
assertColorEquals(kPurple, color);
assertColorEquals(PURPLE, color);
break;
case 2:
assertColorEquals(kWhite, color);
assertColorEquals(WHITE, color);
break;
default:
fail("Bad test setup");
@@ -519,13 +520,13 @@ class LEDPatternTest {
Color color = buffer.getLED(led);
switch (led % 3) {
case 0:
assertColorEquals(kWhite, color);
assertColorEquals(WHITE, color);
break;
case 1:
assertColorEquals(kYellow, color);
assertColorEquals(YELLOW, color);
break;
case 2:
assertColorEquals(kPurple, color);
assertColorEquals(PURPLE, color);
break;
default:
fail("Bad test setup");
@@ -537,7 +538,7 @@ class LEDPatternTest {
@Test
void blinkSymmetric() {
// on for 2 seconds, off for 2 seconds
var pattern = LEDPattern.solid(kWhite).blink(Seconds.of(2));
var pattern = LEDPattern.solid(WHITE).blink(Seconds.of(2));
var buffer = new AddressableLEDBuffer(1);
@@ -551,13 +552,13 @@ class LEDPatternTest {
case 1:
case 4:
case 5:
assertColorEquals(kWhite, color);
assertColorEquals(WHITE, color);
break;
case 2:
case 3:
case 6:
case 7:
assertColorEquals(kBlack, color);
assertColorEquals(BLACK, color);
break;
default:
fail("Bad test setup");
@@ -569,7 +570,7 @@ class LEDPatternTest {
@Test
void blinkAsymmetric() {
// on for 3 seconds, off for 1 second
var pattern = LEDPattern.solid(kWhite).blink(Seconds.of(3), Seconds.of(1));
var pattern = LEDPattern.solid(WHITE).blink(Seconds.of(3), Seconds.of(1));
var buffer = new AddressableLEDBuffer(1);
@@ -585,11 +586,11 @@ class LEDPatternTest {
case 4:
case 5:
case 6: // second period
assertColorEquals(kWhite, color);
assertColorEquals(WHITE, color);
break;
case 3:
case 7:
assertColorEquals(kBlack, color);
assertColorEquals(BLACK, color);
break;
default:
fail("Bad test setup");
@@ -601,34 +602,34 @@ class LEDPatternTest {
@Test
void blinkInSync() {
AtomicBoolean condition = new AtomicBoolean(false);
var pattern = LEDPattern.solid(kWhite).synchronizedBlink(condition::get);
var pattern = LEDPattern.solid(WHITE).synchronizedBlink(condition::get);
var buffer = new AddressableLEDBuffer(1);
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(0));
condition.set(true);
pattern.applyTo(buffer);
assertColorEquals(kWhite, buffer.getLED(0));
assertColorEquals(WHITE, buffer.getLED(0));
condition.set(false);
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(0));
}
@Test
void breathe() {
final Color midGray = new Color(0.5, 0.5, 0.5);
var pattern = LEDPattern.solid(kWhite).breathe(Microseconds.of(4));
var pattern = LEDPattern.solid(WHITE).breathe(Microseconds.of(4));
var buffer = new AddressableLEDBuffer(1);
{
m_mockTime = 0; // start
pattern.applyTo(buffer);
assertColorEquals(kWhite, buffer.getLED(0));
assertColorEquals(WHITE, buffer.getLED(0));
}
{
@@ -640,7 +641,7 @@ class LEDPatternTest {
{
m_mockTime = 2; // bottom
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(0));
}
{
@@ -652,24 +653,24 @@ class LEDPatternTest {
{
m_mockTime = 4; // back to start
pattern.applyTo(buffer);
assertColorEquals(kWhite, buffer.getLED(0));
assertColorEquals(WHITE, buffer.getLED(0));
}
}
@Test
void overlaySolidOnSolid() {
var overlay = LEDPattern.solid(kYellow).overlayOn(LEDPattern.solid(kWhite));
var overlay = LEDPattern.solid(YELLOW).overlayOn(LEDPattern.solid(WHITE));
var buffer = new AddressableLEDBuffer(1);
overlay.applyTo(buffer);
assertColorEquals(kYellow, buffer.getLED(0));
assertColorEquals(YELLOW, buffer.getLED(0));
}
@Test
void overlayNearlyBlack() {
Color overlayColor = new Color(new Color8Bit(1, 0, 0));
var overlay = LEDPattern.solid(overlayColor).overlayOn(LEDPattern.solid(kWhite));
var overlay = LEDPattern.solid(overlayColor).overlayOn(LEDPattern.solid(WHITE));
var buffer = new AddressableLEDBuffer(1);
overlay.applyTo(buffer);
@@ -680,19 +681,19 @@ class LEDPatternTest {
@Test
void overlayMixed() {
var overlay =
LEDPattern.steps(Map.of(0, kYellow, 0.5, kBlack)).overlayOn(LEDPattern.solid(kWhite));
LEDPattern.steps(Map.of(0, YELLOW, 0.5, BLACK)).overlayOn(LEDPattern.solid(WHITE));
var buffer = new AddressableLEDBuffer(2);
overlay.applyTo(buffer);
assertColorEquals(kYellow, buffer.getLED(0));
assertColorEquals(kWhite, buffer.getLED(1));
assertColorEquals(YELLOW, buffer.getLED(0));
assertColorEquals(WHITE, buffer.getLED(1));
}
@Test
void blend() {
var pattern1 = LEDPattern.solid(kBlue);
var pattern2 = LEDPattern.solid(kRed);
var pattern1 = LEDPattern.solid(BLUE);
var pattern2 = LEDPattern.solid(RED);
var blend = pattern1.blend(pattern2);
var buffer = new AddressableLEDBuffer(1);
@@ -707,7 +708,7 @@ class LEDPatternTest {
Color color = new Color(123, 123, 123);
var base = LEDPattern.solid(color);
// first 50% mask on, last 50% mask off
var mask = LEDPattern.steps(Map.of(0, kWhite, 0.5, kBlack));
var mask = LEDPattern.steps(Map.of(0, WHITE, 0.5, BLACK));
var masked = base.mask(mask);
var buffer = new AddressableLEDBuffer(10);
@@ -718,7 +719,7 @@ class LEDPatternTest {
}
for (int i = 5; i < 10; i++) {
assertColorEquals(kBlack, buffer.getLED(i));
assertColorEquals(BLACK, buffer.getLED(i));
}
}
@@ -728,8 +729,7 @@ class LEDPatternTest {
Color halfGray = new Color(0.5, 0.5, 0.5);
var base = LEDPattern.solid(baseColor);
var mask =
LEDPattern.steps(Map.of(0, kRed, 0.2, kLime, 0.4, kBlue, 0.6, halfGray, 0.8, kWhite));
var mask = LEDPattern.steps(Map.of(0, RED, 0.2, LIME, 0.4, BLUE, 0.6, halfGray, 0.8, WHITE));
var masked = base.mask(mask);
@@ -759,14 +759,14 @@ class LEDPatternTest {
int lastMaskedLED = (int) (t * 100);
for (int i = 0; i < lastMaskedLED; i++) {
assertColorEquals(
kWhite,
WHITE,
buffer.getLED(i),
"Progress " + lastMaskedLED + "%, LED " + i + " should be WHITE");
}
for (int i = lastMaskedLED; i < 100; i++) {
assertColorEquals(
kBlack,
BLACK,
buffer.getLED(i),
"Progress " + lastMaskedLED + "% , LED " + i + " should be BLACK");
}
@@ -775,87 +775,87 @@ class LEDPatternTest {
@Test
void zeroBrightness() {
var pattern = LEDPattern.solid(kRed).atBrightness(Percent.of(0));
var pattern = LEDPattern.solid(RED).atBrightness(Percent.of(0));
var buffer = new AddressableLEDBuffer(1);
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(0));
}
@Test
void sameBrightness() {
var pattern = LEDPattern.solid(kMagenta).atBrightness(Percent.of(100));
var pattern = LEDPattern.solid(MAGENTA).atBrightness(Percent.of(100));
var buffer = new AddressableLEDBuffer(1);
pattern.applyTo(buffer);
assertColorEquals(kMagenta, buffer.getLED(0));
assertColorEquals(MAGENTA, buffer.getLED(0));
}
@Test
void higherBrightness() {
var pattern = LEDPattern.solid(kMagenta).atBrightness(Value.of(4 / 3.0));
var pattern = LEDPattern.solid(MAGENTA).atBrightness(Value.of(4 / 3.0));
var buffer = new AddressableLEDBuffer(1);
pattern.applyTo(buffer);
assertColorEquals(kMagenta, buffer.getLED(0));
assertColorEquals(MAGENTA, buffer.getLED(0));
}
@Test
void negativeBrightness() {
var pattern = LEDPattern.solid(kWhite).atBrightness(Percent.of(-1000));
var pattern = LEDPattern.solid(WHITE).atBrightness(Percent.of(-1000));
var buffer = new AddressableLEDBuffer(1);
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(0));
}
@Test
void clippingBrightness() {
var pattern = LEDPattern.solid(kMidnightBlue).atBrightness(Percent.of(10000));
var pattern = LEDPattern.solid(MIDNIGHT_BLUE).atBrightness(Percent.of(10000));
var buffer = new AddressableLEDBuffer(1);
pattern.applyTo(buffer);
assertColorEquals(kWhite, buffer.getLED(0));
assertColorEquals(WHITE, buffer.getLED(0));
}
@Test
void reverseMask() {
var pattern =
LEDPattern.steps(Map.of(0, kRed, 0.25, kBlue, 0.5, kYellow, 0.75, kGreen))
.mask(LEDPattern.steps(Map.of(0, kWhite, 0.5, kBlack)))
LEDPattern.steps(Map.of(0, RED, 0.25, BLUE, 0.5, YELLOW, 0.75, GREEN))
.mask(LEDPattern.steps(Map.of(0, WHITE, 0.5, BLACK)))
.reversed();
var buffer = new AddressableLEDBuffer(8);
pattern.applyTo(buffer);
assertColorEquals(kRed, buffer.getLED(7));
assertColorEquals(kRed, buffer.getLED(6));
assertColorEquals(kBlue, buffer.getLED(5));
assertColorEquals(kBlue, buffer.getLED(4));
assertColorEquals(kBlack, buffer.getLED(3));
assertColorEquals(kBlack, buffer.getLED(2));
assertColorEquals(kBlack, buffer.getLED(1));
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(RED, buffer.getLED(7));
assertColorEquals(RED, buffer.getLED(6));
assertColorEquals(BLUE, buffer.getLED(5));
assertColorEquals(BLUE, buffer.getLED(4));
assertColorEquals(BLACK, buffer.getLED(3));
assertColorEquals(BLACK, buffer.getLED(2));
assertColorEquals(BLACK, buffer.getLED(1));
assertColorEquals(BLACK, buffer.getLED(0));
}
@Test
void offsetMask() {
var pattern =
LEDPattern.steps(Map.of(0, kRed, 0.25, kBlue, 0.5, kYellow, 0.75, kGreen))
.mask(LEDPattern.steps(Map.of(0, kWhite, 0.5, kBlack)))
LEDPattern.steps(Map.of(0, RED, 0.25, BLUE, 0.5, YELLOW, 0.75, GREEN))
.mask(LEDPattern.steps(Map.of(0, WHITE, 0.5, BLACK)))
.offsetBy(4);
var buffer = new AddressableLEDBuffer(8);
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kBlack, buffer.getLED(1));
assertColorEquals(kBlack, buffer.getLED(2));
assertColorEquals(kBlack, buffer.getLED(3));
assertColorEquals(kRed, buffer.getLED(4));
assertColorEquals(kRed, buffer.getLED(5));
assertColorEquals(kBlue, buffer.getLED(6));
assertColorEquals(kBlue, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(1));
assertColorEquals(BLACK, buffer.getLED(2));
assertColorEquals(BLACK, buffer.getLED(3));
assertColorEquals(RED, buffer.getLED(4));
assertColorEquals(RED, buffer.getLED(5));
assertColorEquals(BLUE, buffer.getLED(6));
assertColorEquals(BLUE, buffer.getLED(7));
}
@Test
@@ -865,61 +865,61 @@ class LEDPatternTest {
// [red, red, blue, blue, black, black, black, black]
// all scrolling at 1 LED per microsecond
var pattern =
LEDPattern.steps(Map.of(0, kRed, 0.25, kBlue, 0.5, kYellow, 0.75, kGreen))
.mask(LEDPattern.steps(Map.of(0, kWhite, 0.5, kBlack)))
LEDPattern.steps(Map.of(0, RED, 0.25, BLUE, 0.5, YELLOW, 0.75, GREEN))
.mask(LEDPattern.steps(Map.of(0, WHITE, 0.5, BLACK)))
.scrollAtRelativeVelocity(Percent.per(Microsecond).of(12.5));
var buffer = new AddressableLEDBuffer(8);
{
m_mockTime = 0; // start
pattern.applyTo(buffer);
assertColorEquals(kRed, buffer.getLED(0));
assertColorEquals(kRed, buffer.getLED(1));
assertColorEquals(kBlue, buffer.getLED(2));
assertColorEquals(kBlue, buffer.getLED(3));
assertColorEquals(kBlack, buffer.getLED(4));
assertColorEquals(kBlack, buffer.getLED(5));
assertColorEquals(kBlack, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(RED, buffer.getLED(0));
assertColorEquals(RED, buffer.getLED(1));
assertColorEquals(BLUE, buffer.getLED(2));
assertColorEquals(BLUE, buffer.getLED(3));
assertColorEquals(BLACK, buffer.getLED(4));
assertColorEquals(BLACK, buffer.getLED(5));
assertColorEquals(BLACK, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
{
m_mockTime = 1;
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kRed, buffer.getLED(1));
assertColorEquals(kRed, buffer.getLED(2));
assertColorEquals(kBlue, buffer.getLED(3));
assertColorEquals(kBlue, buffer.getLED(4));
assertColorEquals(kBlack, buffer.getLED(5));
assertColorEquals(kBlack, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(RED, buffer.getLED(1));
assertColorEquals(RED, buffer.getLED(2));
assertColorEquals(BLUE, buffer.getLED(3));
assertColorEquals(BLUE, buffer.getLED(4));
assertColorEquals(BLACK, buffer.getLED(5));
assertColorEquals(BLACK, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
{
m_mockTime = 2;
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kBlack, buffer.getLED(1));
assertColorEquals(kRed, buffer.getLED(2));
assertColorEquals(kRed, buffer.getLED(3));
assertColorEquals(kBlue, buffer.getLED(4));
assertColorEquals(kBlue, buffer.getLED(5));
assertColorEquals(kBlack, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(1));
assertColorEquals(RED, buffer.getLED(2));
assertColorEquals(RED, buffer.getLED(3));
assertColorEquals(BLUE, buffer.getLED(4));
assertColorEquals(BLUE, buffer.getLED(5));
assertColorEquals(BLACK, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
{
m_mockTime = 3;
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kBlack, buffer.getLED(1));
assertColorEquals(kBlack, buffer.getLED(2));
assertColorEquals(kRed, buffer.getLED(3));
assertColorEquals(kRed, buffer.getLED(4));
assertColorEquals(kBlue, buffer.getLED(5));
assertColorEquals(kBlue, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(1));
assertColorEquals(BLACK, buffer.getLED(2));
assertColorEquals(RED, buffer.getLED(3));
assertColorEquals(RED, buffer.getLED(4));
assertColorEquals(BLUE, buffer.getLED(5));
assertColorEquals(BLUE, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
}
@@ -930,61 +930,61 @@ class LEDPatternTest {
// [red, red, blue, blue, black, black, black, black]
// all scrolling at 1 LED per microsecond
var pattern =
LEDPattern.steps(Map.of(0, kRed, 0.25, kBlue, 0.5, kYellow, 0.75, kGreen))
.mask(LEDPattern.steps(Map.of(0, kWhite, 0.5, kBlack)))
LEDPattern.steps(Map.of(0, RED, 0.25, BLUE, 0.5, YELLOW, 0.75, GREEN))
.mask(LEDPattern.steps(Map.of(0, WHITE, 0.5, BLACK)))
.scrollAtAbsoluteVelocity(Meters.per(Microsecond).of(1), Meters.one());
var buffer = new AddressableLEDBuffer(8);
{
m_mockTime = 0; // start
pattern.applyTo(buffer);
assertColorEquals(kRed, buffer.getLED(0));
assertColorEquals(kRed, buffer.getLED(1));
assertColorEquals(kBlue, buffer.getLED(2));
assertColorEquals(kBlue, buffer.getLED(3));
assertColorEquals(kBlack, buffer.getLED(4));
assertColorEquals(kBlack, buffer.getLED(5));
assertColorEquals(kBlack, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(RED, buffer.getLED(0));
assertColorEquals(RED, buffer.getLED(1));
assertColorEquals(BLUE, buffer.getLED(2));
assertColorEquals(BLUE, buffer.getLED(3));
assertColorEquals(BLACK, buffer.getLED(4));
assertColorEquals(BLACK, buffer.getLED(5));
assertColorEquals(BLACK, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
{
m_mockTime = 1;
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kRed, buffer.getLED(1));
assertColorEquals(kRed, buffer.getLED(2));
assertColorEquals(kBlue, buffer.getLED(3));
assertColorEquals(kBlue, buffer.getLED(4));
assertColorEquals(kBlack, buffer.getLED(5));
assertColorEquals(kBlack, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(RED, buffer.getLED(1));
assertColorEquals(RED, buffer.getLED(2));
assertColorEquals(BLUE, buffer.getLED(3));
assertColorEquals(BLUE, buffer.getLED(4));
assertColorEquals(BLACK, buffer.getLED(5));
assertColorEquals(BLACK, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
{
m_mockTime = 2;
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kBlack, buffer.getLED(1));
assertColorEquals(kRed, buffer.getLED(2));
assertColorEquals(kRed, buffer.getLED(3));
assertColorEquals(kBlue, buffer.getLED(4));
assertColorEquals(kBlue, buffer.getLED(5));
assertColorEquals(kBlack, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(1));
assertColorEquals(RED, buffer.getLED(2));
assertColorEquals(RED, buffer.getLED(3));
assertColorEquals(BLUE, buffer.getLED(4));
assertColorEquals(BLUE, buffer.getLED(5));
assertColorEquals(BLACK, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
{
m_mockTime = 3;
pattern.applyTo(buffer);
assertColorEquals(kBlack, buffer.getLED(0));
assertColorEquals(kBlack, buffer.getLED(1));
assertColorEquals(kBlack, buffer.getLED(2));
assertColorEquals(kRed, buffer.getLED(3));
assertColorEquals(kRed, buffer.getLED(4));
assertColorEquals(kBlue, buffer.getLED(5));
assertColorEquals(kBlue, buffer.getLED(6));
assertColorEquals(kBlack, buffer.getLED(7));
assertColorEquals(BLACK, buffer.getLED(0));
assertColorEquals(BLACK, buffer.getLED(1));
assertColorEquals(BLACK, buffer.getLED(2));
assertColorEquals(RED, buffer.getLED(3));
assertColorEquals(RED, buffer.getLED(4));
assertColorEquals(BLUE, buffer.getLED(5));
assertColorEquals(BLUE, buffer.getLED(6));
assertColorEquals(BLACK, buffer.getLED(7));
}
}