Update pattern tests for new preset-based API

- Replace add() calls with edit() for preset creation
- Update tests to work with merged patterns.py
- Ensure all tests use new Preset object structure
This commit is contained in:
2026-01-27 00:42:33 +13:00
parent a999b9054e
commit a75d71d9f4
8 changed files with 40 additions and 40 deletions

View File

@@ -28,7 +28,7 @@ def main():
# Test 1: Rainbow in AUTO mode (continuous) # Test 1: Rainbow in AUTO mode (continuous)
print("\nTest 1: Rainbow pattern in AUTO mode (should run continuously)") print("\nTest 1: Rainbow pattern in AUTO mode (should run continuously)")
p.add("rainbow_auto", { p.edit("rainbow_auto", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 128, "brightness": 128,
"delay": 50, "delay": 50,
@@ -42,7 +42,7 @@ def main():
# Test 2: Rainbow in MANUAL mode (one step per tick) # Test 2: Rainbow in MANUAL mode (one step per tick)
print("\nTest 2: Rainbow pattern in MANUAL mode (one step per tick)") print("\nTest 2: Rainbow pattern in MANUAL mode (one step per tick)")
p.add("rainbow_manual", { p.edit("rainbow_manual", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 128, "brightness": 128,
"delay": 50, "delay": 50,
@@ -64,7 +64,7 @@ def main():
# Test 3: Pulse in AUTO mode (continuous cycles) # Test 3: Pulse in AUTO mode (continuous cycles)
print("\nTest 3: Pulse pattern in AUTO mode (should pulse continuously)") print("\nTest 3: Pulse pattern in AUTO mode (should pulse continuously)")
p.add("pulse_auto", { p.edit("pulse_auto", {
"pattern": "pulse", "pattern": "pulse",
"brightness": 128, "brightness": 128,
"delay": 100, "delay": 100,
@@ -81,7 +81,7 @@ def main():
# Test 4: Pulse in MANUAL mode (one cycle then stop) # Test 4: Pulse in MANUAL mode (one cycle then stop)
print("\nTest 4: Pulse pattern in MANUAL mode (one cycle then stop)") print("\nTest 4: Pulse pattern in MANUAL mode (one cycle then stop)")
p.add("pulse_manual", { p.edit("pulse_manual", {
"pattern": "pulse", "pattern": "pulse",
"brightness": 128, "brightness": 128,
"delay": 100, "delay": 100,
@@ -107,7 +107,7 @@ def main():
# Test 5: Transition in AUTO mode (continuous transitions) # Test 5: Transition in AUTO mode (continuous transitions)
print("\nTest 5: Transition pattern in AUTO mode (continuous transitions)") print("\nTest 5: Transition pattern in AUTO mode (continuous transitions)")
p.add("transition_auto", { p.edit("transition_auto", {
"pattern": "transition", "pattern": "transition",
"brightness": 128, "brightness": 128,
"delay": 500, "delay": 500,
@@ -121,7 +121,7 @@ def main():
# Test 6: Transition in MANUAL mode (one transition then stop) # Test 6: Transition in MANUAL mode (one transition then stop)
print("\nTest 6: Transition pattern in MANUAL mode (one transition then stop)") print("\nTest 6: Transition pattern in MANUAL mode (one transition then stop)")
p.add("transition_manual", { p.edit("transition_manual", {
"pattern": "transition", "pattern": "transition",
"brightness": 128, "brightness": 128,
"delay": 500, "delay": 500,
@@ -144,7 +144,7 @@ def main():
# Test 7: Switching between auto and manual modes # Test 7: Switching between auto and manual modes
print("\nTest 7: Switching between auto and manual modes") print("\nTest 7: Switching between auto and manual modes")
p.add("switch_test", { p.edit("switch_test", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 128, "brightness": 128,
"delay": 50, "delay": 50,
@@ -176,7 +176,7 @@ def main():
# Cleanup # Cleanup
print("\nCleaning up...") print("\nCleaning up...")
p.add("cleanup_off", {"pattern": "off"}) p.edit("cleanup_off", {"pattern": "off"})
p.select("cleanup_off") p.select("cleanup_off")
p.tick() p.tick()
utime.sleep_ms(100) utime.sleep_ms(100)

View File

@@ -14,7 +14,7 @@ def main():
wdt = WDT(timeout=10000) wdt = WDT(timeout=10000)
# Create blink preset # Create blink preset
p.add("test_blink", { p.edit("test_blink", {
"pattern": "blink", "pattern": "blink",
"brightness": 64, "brightness": 64,
"delay": 200, "delay": 200,

View File

@@ -24,7 +24,7 @@ def main():
# Test 1: Basic circle (n1=50, n2=100, n3=200, n4=0) # Test 1: Basic circle (n1=50, n2=100, n3=200, n4=0)
print("Test 1: Basic circle (n1=50, n2=100, n3=200, n4=0)") print("Test 1: Basic circle (n1=50, n2=100, n3=200, n4=0)")
p.add("circle1", { p.edit("circle1", {
"pattern": "circle", "pattern": "circle",
"brightness": 255, "brightness": 255,
"n1": 50, # Head moves 50 LEDs/second "n1": 50, # Head moves 50 LEDs/second
@@ -38,7 +38,7 @@ def main():
# Test 2: Slow growth, fast shrink (n1=20, n2=50, n3=100, n4=0) # Test 2: Slow growth, fast shrink (n1=20, n2=50, n3=100, n4=0)
print("Test 2: Slow growth, fast shrink (n1=20, n2=50, n3=100, n4=0)") print("Test 2: Slow growth, fast shrink (n1=20, n2=50, n3=100, n4=0)")
p.add("circle2", { p.edit("circle2", {
"pattern": "circle", "pattern": "circle",
"n1": 20, "n1": 20,
"n2": 50, "n2": 50,
@@ -51,7 +51,7 @@ def main():
# Test 3: Fast growth, slow shrink (n1=100, n2=30, n3=20, n4=0) # Test 3: Fast growth, slow shrink (n1=100, n2=30, n3=20, n4=0)
print("Test 3: Fast growth, slow shrink (n1=100, n2=30, n3=20, n4=0)") print("Test 3: Fast growth, slow shrink (n1=100, n2=30, n3=20, n4=0)")
p.add("circle3", { p.edit("circle3", {
"pattern": "circle", "pattern": "circle",
"n1": 100, "n1": 100,
"n2": 30, "n2": 30,
@@ -64,7 +64,7 @@ def main():
# Test 4: With minimum length (n1=50, n2=40, n3=100, n4=10) # Test 4: With minimum length (n1=50, n2=40, n3=100, n4=10)
print("Test 4: With minimum length (n1=50, n2=40, n3=100, n4=10)") print("Test 4: With minimum length (n1=50, n2=40, n3=100, n4=10)")
p.add("circle4", { p.edit("circle4", {
"pattern": "circle", "pattern": "circle",
"n1": 50, "n1": 50,
"n2": 40, "n2": 40,
@@ -77,7 +77,7 @@ def main():
# Test 5: Very fast (n1=200, n2=20, n3=200, n4=0) # Test 5: Very fast (n1=200, n2=20, n3=200, n4=0)
print("Test 5: Very fast (n1=200, n2=20, n3=200, n4=0)") print("Test 5: Very fast (n1=200, n2=20, n3=200, n4=0)")
p.add("circle5", { p.edit("circle5", {
"pattern": "circle", "pattern": "circle",
"n1": 200, "n1": 200,
"n2": 20, "n2": 20,
@@ -90,7 +90,7 @@ def main():
# Test 6: Very slow (n1=10, n2=25, n3=10, n4=0) # Test 6: Very slow (n1=10, n2=25, n3=10, n4=0)
print("Test 6: Very slow (n1=10, n2=25, n3=10, n4=0)") print("Test 6: Very slow (n1=10, n2=25, n3=10, n4=0)")
p.add("circle6", { p.edit("circle6", {
"pattern": "circle", "pattern": "circle",
"n1": 10, "n1": 10,
"n2": 25, "n2": 25,
@@ -103,7 +103,7 @@ def main():
# Cleanup # Cleanup
print("Test complete, turning off") print("Test complete, turning off")
p.add("cleanup_off", {"pattern": "off"}) p.edit("cleanup_off", {"pattern": "off"})
p.select("cleanup_off") p.select("cleanup_off")
run_for(p, wdt, 100) run_for(p, wdt, 100)

View File

@@ -14,7 +14,7 @@ def main():
wdt = WDT(timeout=10000) wdt = WDT(timeout=10000)
# Create an "off" preset # Create an "off" preset
p.add("test_off", {"pattern": "off"}) p.edit("test_off", {"pattern": "off"})
p.select("test_off") p.select("test_off")
start = utime.ticks_ms() start = utime.ticks_ms()

View File

@@ -14,13 +14,13 @@ def main():
wdt = WDT(timeout=10000) wdt = WDT(timeout=10000)
# Create presets for on and off # Create presets for on and off
p.add("test_on", { p.edit("test_on", {
"pattern": "on", "pattern": "on",
"brightness": 64, "brightness": 64,
"delay": 120, "delay": 120,
"colors": [(255, 0, 0), (0, 0, 255)] "colors": [(255, 0, 0), (0, 0, 255)]
}) })
p.add("test_off", {"pattern": "off"}) p.edit("test_off", {"pattern": "off"})
# ON phase # ON phase
p.select("test_on") p.select("test_on")

View File

@@ -24,7 +24,7 @@ def main():
# Test 1: Simple single-color pulse # Test 1: Simple single-color pulse
print("Test 1: Single-color pulse (attack=500, hold=500, decay=500, delay=500)") print("Test 1: Single-color pulse (attack=500, hold=500, decay=500, delay=500)")
p.add("pulse1", { p.edit("pulse1", {
"pattern": "pulse", "pattern": "pulse",
"brightness": 255, "brightness": 255,
"colors": [(255, 0, 0)], "colors": [(255, 0, 0)],
@@ -39,7 +39,7 @@ def main():
# Test 2: Faster pulse # Test 2: Faster pulse
print("Test 2: Fast pulse (attack=100, hold=100, decay=100, delay=100)") print("Test 2: Fast pulse (attack=100, hold=100, decay=100, delay=100)")
p.add("pulse2", { p.edit("pulse2", {
"pattern": "pulse", "pattern": "pulse",
"n1": 100, "n1": 100,
"n2": 100, "n2": 100,
@@ -52,7 +52,7 @@ def main():
# Test 3: Multi-color pulse cycle # Test 3: Multi-color pulse cycle
print("Test 3: Multi-color pulse (red -> green -> blue)") print("Test 3: Multi-color pulse (red -> green -> blue)")
p.add("pulse3", { p.edit("pulse3", {
"pattern": "pulse", "pattern": "pulse",
"n1": 300, "n1": 300,
"n2": 300, "n2": 300,
@@ -66,7 +66,7 @@ def main():
# Test 4: One-shot pulse (auto=False) # Test 4: One-shot pulse (auto=False)
print("Test 4: Single pulse, auto=False") print("Test 4: Single pulse, auto=False")
p.add("pulse4", { p.edit("pulse4", {
"pattern": "pulse", "pattern": "pulse",
"n1": 400, "n1": 400,
"n2": 0, "n2": 0,
@@ -81,7 +81,7 @@ def main():
# Cleanup # Cleanup
print("Test complete, turning off") print("Test complete, turning off")
p.add("cleanup_off", {"pattern": "off"}) p.edit("cleanup_off", {"pattern": "off"})
p.select("cleanup_off") p.select("cleanup_off")
run_for(p, wdt, 200) run_for(p, wdt, 200)

View File

@@ -24,7 +24,7 @@ def main():
# Test 1: Basic rainbow with auto=True (continuous) # Test 1: Basic rainbow with auto=True (continuous)
print("Test 1: Basic rainbow (auto=True, n1=1)") print("Test 1: Basic rainbow (auto=True, n1=1)")
p.add("rainbow1", { p.edit("rainbow1", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 255, "brightness": 255,
"delay": 100, "delay": 100,
@@ -36,7 +36,7 @@ def main():
# Test 2: Fast rainbow # Test 2: Fast rainbow
print("Test 2: Fast rainbow (low delay, n1=1)") print("Test 2: Fast rainbow (low delay, n1=1)")
p.add("rainbow2", { p.edit("rainbow2", {
"pattern": "rainbow", "pattern": "rainbow",
"delay": 50, "delay": 50,
"n1": 1, "n1": 1,
@@ -47,7 +47,7 @@ def main():
# Test 3: Slow rainbow # Test 3: Slow rainbow
print("Test 3: Slow rainbow (high delay, n1=1)") print("Test 3: Slow rainbow (high delay, n1=1)")
p.add("rainbow3", { p.edit("rainbow3", {
"pattern": "rainbow", "pattern": "rainbow",
"delay": 500, "delay": 500,
"n1": 1, "n1": 1,
@@ -58,7 +58,7 @@ def main():
# Test 4: Low brightness rainbow # Test 4: Low brightness rainbow
print("Test 4: Low brightness rainbow (n1=1)") print("Test 4: Low brightness rainbow (n1=1)")
p.add("rainbow4", { p.edit("rainbow4", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 64, "brightness": 64,
"delay": 100, "delay": 100,
@@ -70,7 +70,7 @@ def main():
# Test 5: Single-step rainbow (auto=False) # Test 5: Single-step rainbow (auto=False)
print("Test 5: Single-step rainbow (auto=False, n1=1)") print("Test 5: Single-step rainbow (auto=False, n1=1)")
p.add("rainbow5", { p.edit("rainbow5", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 255, "brightness": 255,
"delay": 100, "delay": 100,
@@ -87,7 +87,7 @@ def main():
# Test 6: Verify step updates correctly # Test 6: Verify step updates correctly
print("Test 6: Verify step updates (auto=False, n1=1)") print("Test 6: Verify step updates (auto=False, n1=1)")
p.add("rainbow6", { p.edit("rainbow6", {
"pattern": "rainbow", "pattern": "rainbow",
"n1": 1, "n1": 1,
"auto": False "auto": False
@@ -100,7 +100,7 @@ def main():
# Test 7: Fast step increment (n1=5) # Test 7: Fast step increment (n1=5)
print("Test 7: Fast rainbow (n1=5, auto=True)") print("Test 7: Fast rainbow (n1=5, auto=True)")
p.add("rainbow7", { p.edit("rainbow7", {
"pattern": "rainbow", "pattern": "rainbow",
"brightness": 255, "brightness": 255,
"delay": 100, "delay": 100,
@@ -112,7 +112,7 @@ def main():
# Test 8: Very fast step increment (n1=10) # Test 8: Very fast step increment (n1=10)
print("Test 8: Very fast rainbow (n1=10, auto=True)") print("Test 8: Very fast rainbow (n1=10, auto=True)")
p.add("rainbow8", { p.edit("rainbow8", {
"pattern": "rainbow", "pattern": "rainbow",
"n1": 10, "n1": 10,
"auto": True "auto": True
@@ -122,7 +122,7 @@ def main():
# Test 9: Verify n1 controls step increment (auto=False) # Test 9: Verify n1 controls step increment (auto=False)
print("Test 9: Verify n1 step increment (auto=False, n1=5)") print("Test 9: Verify n1 step increment (auto=False, n1=5)")
p.add("rainbow9", { p.edit("rainbow9", {
"pattern": "rainbow", "pattern": "rainbow",
"n1": 5, "n1": 5,
"auto": False "auto": False
@@ -141,7 +141,7 @@ def main():
# Cleanup # Cleanup
print("Test complete, turning off") print("Test complete, turning off")
p.add("cleanup_off", {"pattern": "off"}) p.edit("cleanup_off", {"pattern": "off"})
p.select("cleanup_off") p.select("cleanup_off")
run_for(p, wdt, 100) run_for(p, wdt, 100)

View File

@@ -24,7 +24,7 @@ def main():
# Test 1: Simple two-color transition # Test 1: Simple two-color transition
print("Test 1: Two-color transition (red <-> blue, delay=1000)") print("Test 1: Two-color transition (red <-> blue, delay=1000)")
p.add("transition1", { p.edit("transition1", {
"pattern": "transition", "pattern": "transition",
"brightness": 255, "brightness": 255,
"delay": 1000, # transition duration "delay": 1000, # transition duration
@@ -36,7 +36,7 @@ def main():
# Test 2: Multi-color transition # Test 2: Multi-color transition
print("Test 2: Multi-color transition (red -> green -> blue -> white)") print("Test 2: Multi-color transition (red -> green -> blue -> white)")
p.add("transition2", { p.edit("transition2", {
"pattern": "transition", "pattern": "transition",
"delay": 800, "delay": 800,
"colors": [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 255)], "colors": [(255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 255)],
@@ -47,7 +47,7 @@ def main():
# Test 3: One-shot transition (auto=False) # Test 3: One-shot transition (auto=False)
print("Test 3: One-shot transition (auto=False)") print("Test 3: One-shot transition (auto=False)")
p.add("transition3", { p.edit("transition3", {
"pattern": "transition", "pattern": "transition",
"delay": 1000, "delay": 1000,
"colors": [(255, 0, 0), (0, 255, 0)], "colors": [(255, 0, 0), (0, 255, 0)],
@@ -59,7 +59,7 @@ def main():
# Test 4: Single-color behavior (should just stay on) # Test 4: Single-color behavior (should just stay on)
print("Test 4: Single-color transition (should hold color)") print("Test 4: Single-color transition (should hold color)")
p.add("transition4", { p.edit("transition4", {
"pattern": "transition", "pattern": "transition",
"colors": [(0, 0, 255)], "colors": [(0, 0, 255)],
"delay": 500, "delay": 500,
@@ -70,7 +70,7 @@ def main():
# Cleanup # Cleanup
print("Test complete, turning off") print("Test complete, turning off")
p.add("cleanup_off", {"pattern": "off"}) p.edit("cleanup_off", {"pattern": "off"})
p.select("cleanup_off") p.select("cleanup_off")
run_for(p, wdt, 200) run_for(p, wdt, 200)