code: def _validate_canonical(self):
      super()._validate_canonical()
      if not self.msg.endswith("[1]"):
          raise ValueError('not end with "[1]"')
  
file_path: nni/test/ut/experiment/test_config_base.py
imports: from copy import deepcopy
  from dataclasses import dataclass
  from typing import Dict, List, Optional, Union
  from nni.experiment.config.base import ConfigBase
  from nni.experiment.config.utils import diff
label_desc: Use image node_id 2 for calling the Child obj's underlying member method code with example usage: obj._validate_canonical() without return types