public function distance(array $a, array $b) : float { if (count($a) !== count($b)) { throw InvalidArgumentException::arraySizeNotMatch(); } $distance = 0; $count = count($a); for ($i = 0; $i < $count; ++$i) { $distance += pow($a[$i] - $b[$i], 2); } return sqrt((double) $distance); }
public function testCalculateDistanceForThreeDimensions() { $a = [6, 10, 3]; $b = [2, 5, 5]; $expectedDistance = 6.708203932499369; $actualDistance = $this->distanceMetric->distance($a, $b); $this->assertEquals($expectedDistance, $actualDistance); }