code: def verify(self, windowSize=None):
          
          if self.samplerate() is None:
              return "Multiple recording files with conflicting samplerates"
          msg = self._autoParams.verify()
          if msg:
              return msg
          if self.traceCount() == 0:
              return "Test is empty"
          if windowSize is not None:
              durations = self.expandFunction(self.duration)
              # print 'windowSize', windowSize, 'self', durations[0],  durations[-1]
              # ranges are linear, so we only need to test first and last
              if durations[0] > windowSize or durations[-1] > windowSize:
                  return "Stimulus duration exceeds window duration"
          msg = self.verifyExpanded(self.samplerate())
          if msg:
              return msg
          if self.caldb is None or self.calv is None:
              return "Test reference voltage not set"
          if None in self.voltage_limits:
              return "Device voltage limits not set"
          return 0
docs: Checks the stimulus, including expanded parameters for invalidating conditions
  
          :param windowSize: acquistion (recording) window size (seconds)
          :type windowSize: float
          :returns: str -- error message, if any, 0 otherwise