Files
tono/tests/node_tests/colormap.py

40 lines
1.1 KiB
Python

import json
def test_color_map_node():
from backend.nodes.colormap import ColorMap
node = ColorMap()
preset, = node.build(mode="preset", preset="magma", stops_json="[]")
assert preset["mode"] == "preset"
assert preset["preset"] == "magma"
custom, = node.build(
mode="custom",
preset="viridis",
stops_json=json.dumps([
{"position": 0.0, "color": "#000000"},
{"position": 0.4, "color": "#00ff00"},
{"position": 1.0, "color": "#ffffff"},
]),
)
assert custom["mode"] == "custom"
assert custom["stops"][0]["position"] == 0.0
assert custom["stops"][-1]["position"] == 1.0
assert len(custom["stops"]) == 3
# invalid JSON raises ValueError
try:
node.build(mode="custom", preset="viridis", stops_json="not valid json{")
assert False, "Expected ValueError"
except ValueError:
pass
# fewer than 2 stops raises ValueError
try:
node.build(mode="custom", preset="viridis", stops_json=json.dumps([{"position": 0.0, "color": "#000000"}]))
assert False, "Expected ValueError"
except ValueError:
pass