data; $targets = array_column($data, 4); array_walk($data, function (&$v) { array_splice($v, 4, 1); }); } return [$data, $targets]; } public function testPredictSingleSample() { list($data, $targets) = $this->getData(); $classifier = new DecisionTree(5); $classifier->train($data, $targets); $this->assertEquals('Dont_play', $classifier->predict(['sunny', 78, 72, 'false'])); $this->assertEquals('Play', $classifier->predict(['overcast', 60, 60, 'false'])); $this->assertEquals('Dont_play', $classifier->predict(['rain', 60, 60, 'true'])); return $classifier; } public function testTreeDepth() { list($data, $targets) = $this->getData(); $classifier = new DecisionTree(5); $classifier->train($data, $targets); $this->assertTrue(5 >= $classifier->actualDepth); } }