Назад к вопросам
VK
Middle
2
Напишите тесты для проверки граничных случаев решения задачи о максимальном расстоянии
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для тестирования граничных случаев задачи о максимальном расстоянии важно проверить:
- Пустой вход (нет точек)
- Одна точка
- Две точки
- Несколько точек с одинаковыми координатами
- Максимально возможное количество точек
- Точки с отрицательными координатами
Пример тестов на Go:
package main
import (
"testing"
)
func TestMaxDistance(t *testing.T) {
tests := []struct {
name string
points [][2]int
want float64
}{
{"empty input", nil, 0},
{"single point", [][2]int{{0, 0}}, 0},
{"two points", [][2]int{{0, 0}, {3, 4}}, 5},
{"identical points", [][2]int{{1, 1}, {1, 1}, {1, 1}}, 0},
{"negative coordinates", [][2]int{{-1, -1}, {2, 3}}, 5},
// Добавьте тест с большим количеством точек, если нужно
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := MaxDistance(tt.points)
if got != tt.want {
t.Errorf("MaxDistance() = %v, want %v", got, tt.want)
}
})
}
}
// Пример функции для вычисления максимального расстояния
func MaxDistance(points [][2]int) float64 {
maxDist := 0.0
for i := 0; i < len(points); i++ {
for j := i + 1; j < len(points); j++ {
dx := points[i][0] - points[j][0]
dy := points[i][1] - points[j][1]
dist := float64(dx*dx + dy*dy)
if dist > maxDist {
maxDist = dist
}
}
}
return maxDist
}
В тестах важно проверять корректность работы при минимальных и максимальных входных данных, а также при особых случаях (например, все точки совпадают).