def test_numeric_node(self): var = ContinuousVariable("y") node = NumericNode(var, 2, 42, "foo") self.assertEqual(node.attr, var) self.assertEqual(node.attr_idx, 2) self.assertEqual(node.value, "foo") self.assertEqual(node.children, []) np.testing.assert_equal(node.subset, np.array([], dtype=np.int32)) self.assertEqual(node.descend([3, 4, 0, 6]), 0) self.assertEqual(node.descend([3, 4, 42, 6]), 0) self.assertEqual(node.descend([3, 4, 42.1, 6]), 1) self.assertTrue(np.isnan(node.descend([3, 4, float("nan"), 6])))