docs: def validate(self):
          """Base validation + each cell is instance of DSM or MDM."""
          super().validate()
          message_dsm = 'Matrix at [%s:%s] is not an instance of '\
                        'DesignStructureMatrix or MultipleDomainMatrix.'
          message_ddm = 'Matrix at [%s:%s] is not an instance of '\
                        'DomainMappingMatrix or MultipleDomainMatrix.'
          messages = []
          for i, row in enumerate(self.data):
              for j, cell in enumerate(row):
                  if i == j:
                      if not isinstance(cell, (
                              DesignStructureMatrix, MultipleDomainMatrix)):
                          messages.append(message_dsm % (i, j))
                  elif not isinstance(cell, (
                          DomainMappingMatrix, MultipleDomainMatrix)):
                      messages.append(message_ddm % (i, j))
          if messages:
              raise self.error('\n'.join(messages))