code: def set_default_split(self):
      self.mTrainSize = self.mSignalFrame.shape[0]
      assert self.mTrainSize > 0
      lEstEnd = int(
          (self.mTrainSize - self.mHorizon) * self.mOptions.mEstimRatio
      )
      lValSize = self.mTrainSize - self.mHorizon - lEstEnd
      lTooSmall = False
      # training too small
      if (self.mTrainSize < 30) or (lValSize < self.mHorizon):
          lTooSmall = True
  
      if lTooSmall:
          self.mEstimStart = 0
          self.mEstimEnd = self.mTrainSize
          self.mValidStart = 0
          self.mValidEnd = self.mTrainSize
          self.mTestStart = 0
          self.mTestEnd = self.mTrainSize
      else:
          self.mEstimStart = 0
          self.mEstimEnd = lEstEnd
          self.mValidStart = self.mEstimEnd
          self.mValidEnd = self.mTrainSize - self.mHorizon
          self.mTestStart = self.mValidEnd
          self.mTestEnd = self.mTrainSize
  
file_path: atspy/atspy/TS/TimeSeries_Cutting.py
imports: import pandas
  import numpy
  from .None import Utils
label_desc: Use image node_id 3 for calling the cCuttingInfo obj's underlying member method code with example usage: obj.set_default_split() without return types