"""测试 ParamsTalker 节点构造与参数声明。""" from py_params.param_node import ParamsTalker def test_default_node_name(params_talker: ParamsTalker) -> None: """默认节点名 'params_talker'。""" assert params_talker.get_name() == 'params_talker' def test_default_publish_rate_hz(params_talker: ParamsTalker) -> None: """默认 publish_rate_hz == 1.0。""" assert params_talker.get_parameter('publish_rate_hz').value == 1.0 def test_default_topic_name(params_talker: ParamsTalker) -> None: """默认 topic_name == 'params_chatter'。""" assert params_talker.get_parameter('topic_name').value == 'params_chatter' def test_default_message_prefix(params_talker: ParamsTalker) -> None: """默认 message_prefix == 'Params:'。""" assert params_talker.get_parameter('message_prefix').value == 'Params:' def test_publisher_created(params_talker: ParamsTalker) -> None: """默认 topic 上有发布者。""" assert params_talker.count_publishers('params_chatter') >= 1 def test_timer_created(params_talker: ParamsTalker) -> None: """定时器已创建。""" assert len(params_talker.timers) >= 1 def test_prefix_cached(params_talker: ParamsTalker) -> None: """缓存前缀与参数默认值一致。""" assert params_talker._prefix == 'Params:'