= $testSize || 1 <= $testSize) { throw InvalidArgumentException::percentNotInRange('testSize'); } $this->seedGenerator($seed); $this->splitDataset($dataset, $testSize); } abstract protected function splitDataset(Dataset $dataset, float $testSize); public function getTrainSamples() : array { return $this->trainSamples; } public function getTestSamples() : array { return $this->testSamples; } public function getTrainLabels() : array { return $this->trainLabels; } public function getTestLabels() : array { return $this->testLabels; } protected function seedGenerator(int $seed = null) { if (null === $seed) { mt_srand(); } else { mt_srand($seed); } } }