@@ -632,6 +632,38 @@ void test_nodemask_add_node()
632632 TEST_ASSERT_EQUAL (0 , IS_ZWAVE_EXTENDED_NODE_ID (232 ));
633633}
634634
635+ void test_nodemask_values ()
636+ {
637+ zwave_nodemask_t nodemask = {0 };
638+
639+ nodemask [0 ] = 0x81 ; // Node IDs: 1 (first classic node ID), 8
640+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1 , nodemask ));
641+ TEST_ASSERT_EQUAL (0 , ZW_IS_NODE_IN_MASK (2 , nodemask ));
642+ TEST_ASSERT_EQUAL (0 , ZW_IS_NODE_IN_MASK (7 , nodemask ));
643+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (8 , nodemask ));
644+ TEST_ASSERT_EQUAL (0 , ZW_IS_NODE_IN_MASK (9 , nodemask ));
645+ nodemask [28 ] = 0xC0 ; // Node IDs: 231, 232 (last classic node ID)
646+ TEST_ASSERT_EQUAL (0 , ZW_IS_NODE_IN_MASK (230 , nodemask ));
647+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (231 , nodemask ));
648+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (232 , nodemask ));
649+ nodemask [32 ] = 0x01 ; // Node IDs: 256 (first LR node ID)
650+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (256 , nodemask ));
651+ nodemask [32 ] = 0x02 ; // Node IDs: 257
652+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (257 , nodemask ));
653+ nodemask [127 ] = 0x80 ; // Node IDs: 1023
654+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1023 , nodemask ));
655+ nodemask [128 ] = 0x01 ; // Node IDs: 1024
656+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1024 , nodemask ));
657+ nodemask [130 ] = 0x80 ; // Node IDs: 1047
658+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1047 , nodemask ));
659+ nodemask [131 ] = 0x01 ; // Node IDs: 1048
660+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1048 , nodemask ));
661+ nodemask [147 ] = 0x10 ; // Node IDs: 1180
662+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1180 , nodemask ));
663+ nodemask [159 ] = 0x80 ; // Node IDs: 1279
664+ TEST_ASSERT_EQUAL (1 , ZW_IS_NODE_IN_MASK (1279 , nodemask ));
665+ }
666+
635667static const zwave_node_id_t test_node_id = 0x39 ;
636668static const zwave_endpoint_id_t test_endpoint_id = 0x12 ;
637669static unid_t test_unid = "zw-00000000-0039" ;
0 commit comments