function testDistanceSearch() { $testSpine = new WMSpine(); $testSpine->addPoint(new WMPoint(50, 50)); $testSpine->addPoint(new WMPoint(150, 50)); $testSpine->addPoint(new WMPoint(150, 150)); $this->assertEquals(200, $testSpine->totalDistance()); $this->assertEquals(3, $testSpine->pointCount()); $index = $testSpine->findIndexNearDistance(110); $this->assertEquals(1, $index); $index = $testSpine->findIndexNearDistance(90); $this->assertEquals(0, $index); $testSpine->addPoint(new WMPoint(0, 150)); $testSpine->addPoint(new WMPoint(0, 0)); $this->assertEquals(500, $testSpine->totalDistance()); $index = $testSpine->findIndexNearDistance(250); $this->assertEquals(2, $index); $index = $testSpine->findIndexNearDistance(600); $this->assertEquals(4, $index); $index = $testSpine->findIndexNearDistance(100); $this->assertEquals(1, $index); $index = $testSpine->findIndexNearDistance(100); $this->assertEquals(1, $index); $index = $testSpine->findIndexNearDistance(-100); $this->assertEquals(0, $index); }