class_docstr: Create a function that splits data into a training, and a validation set.
  
  .. code-block:: python
  
      # create a validation splitter function with 80% train, and 20% validation
      validation_splitter(0.20)
  
  
  :param test_size: test size in float
  :return:
code: def split(
      self,
      data_inputs: DIT,
      ids: Optional[IDT] = None,
      expected_outputs: Optional[EOT] = None,
      context: Optional[CX] = None,
  ) -> Tuple[
      FoldsList[DIT],
      FoldsList[EOT],
      FoldsList[IDT],
      FoldsList[DIT],
      FoldsList[EOT],
      FoldsList[IDT],
  ]:
      return tuple(
          [
              # The data goes from `DACTData` to `FoldsList[DACTData]`, as per the a single fold:
              [data]
              for data in self._full_validation_split(
                  data_inputs=data_inputs,
                  ids=ids,
                  expected_outputs=expected_outputs,
              )
          ]
      )
  
imports: import copy
  import math
  from abc import ABC, abstractmethod
  from typing import Any, List, Optional, Set, Tuple
  import numpy
  from neuraxle.base import ExecutionContext
  from neuraxle.data_container import DIT, EOT, IDT, DACTData
  from neuraxle.data_container import DataContainer
  from neuraxle.data_container import TrainDACT, ValidDACT
label_desc: Use image node_id 2 for calling the ValidationSplitter obj's underlying member method code with example usage: obj.split(data_inputs, ids, expected_outputs, context) and returns: tuple