code: def check_field_cohesion(self, rec_write_fields, sig_write_fields):
          
          # If there are no signal specification fields, there is nothing to check.
          if self.n_sig>0:
  
              # The length of all signal specification fields must match n_sig
              # even if some of its elements are None.
              for f in sig_write_fields:
                  if len(getattr(self, f)) != self.n_sig:
                      raise ValueError('The length of field: '+f+' must match field n_sig.')
  
              # Each file_name must correspond to only one fmt, (and only one byte offset if defined).
              datfmts = {}
              for ch in range(self.n_sig):
                  if self.file_name[ch] not in datfmts:
                      datfmts[self.file_name[ch]] = self.fmt[ch]
                  else:
                      if datfmts[self.file_name[ch]] != self.fmt[ch]:
                          raise ValueError('Each file_name (dat file) specified must have the same fmt')
  
              datoffsets = {}
              if self.byte_offset is not None:
                  # At least one byte offset value exists
                  for ch in range(self.n_sig):
                      if self.byte_offset[ch] is None:
                          continue
                      if self.file_name[ch] not in datoffsets:
                          datoffsets[self.file_name[ch]] = self.byte_offset[ch]
                      else:
                          if datoffsets[self.file_name[ch]] != self.byte_offset[ch]:
                              raise ValueError('Each file_name (dat file) specified must have the same byte offset')
docs: Check the cohesion of fields used to write the header