Я написал алгоритм BFS, и я хотел бы протестировать алгоритм.
Я написал тесты в 2 подходах, потому что я понял, что, например, способ хранения смежных вершин может измениться, ипорядок будет другим, поэтому результат будет другим, но не обязательно неверным.
Проверка полного пути:
@Test
void traverse_UndirectedGraph_CommonTraverse() {
BreadthFirstSearchTest<String> breadthFirstSearchTest= new BreadthFirstSearchTest<>(undirectedGraph);
assertIterableEquals(Lists.newArrayList("A", "B", "E"), breathFirstSearch.traverse("A", "E"));
}
Проверка, содержит ли путь начальную вершину и конечную вершину:
@Test
void traverse_UndirectedGraph_CommonTraverse() {
BreadthFirstSearchTest<String> breadthFirstSearchTest= new BreadthFirstSearchTest<>(undirectedGraph);
List<String> path = breathFirstSearch.traverse("A", "E");
assertEquals("A", path.get(0));
assertEquals("E", path.get(path.size() - 1));
}
Является ли любой из этих двух подходов правильным? Если нет, то как бы вы проверили эти алгоритмы?