java - 如何使用列表实现深度优先遍历测试?
问题描述
我正在尝试测试我的 DepthFirstTraversal。只是,我将如何根据我为其编写的代码对其进行测试。
这是我正在使用的方法,(add 方法来自另一个类,它是从另一个类扩展而来的,而 traverse 方法是从另一个类实现的):
public class DepthFirstTraversal {
private List traversal = new ArrayList();
这就是我尝试使用 List 测试它的方式,因为这是我在深度优先遍历类中声明的:
@Test
void willItDepthFirst(){
DepthFirstTraversal b = new DepthFirstTraversal();
b.add(1);//add node
b.add(0);
b.add(2);
b.add(3);
b.add(4);
b.add(0,1);//connect nodes with edges
b.add(1,2);
b.add(2,3);
b.add(0,4);
b.traverse();
List<Integer> c= Arrays.asList(0,1,4,2,3);
assertEquals(c,b);
}
然而,这是我得到的错误。:
org.opentest4j.AssertionFailedError:
Expected :[0, 1, 4, 2, 3]
Actual :graph.DepthFirstTraversal@6536e911
编辑:删除了不必要的方法
解决方案
正如评论中提到的,您需要检查traverse()
方法的返回值,而不是对象本身:
List<Integer> result = b.traverse();
List<Integer> expected = Arrays.asList(0,1,4,2,3);
assertEquals(expected, result);
推荐阅读
- r - foreach %dopar% 到 sparklyr 中?
- javascript - 如何在打字稿中使用条件导入模块的类型?
- python - 如何在python中的if ... else语句中编写if else?
- r - 在 dplyr 中删除具有特定列值的行
- liquid - 如何在 Liquid 中执行重复的产品条件?
- java - 我想用给定的用户输入创建一个数组的条形图
- python - 当其他数组为 NaN 时,Python 2D 数组将值替换为 NaN
- javascript - 键码/在按钮组上向上、向下、向左、向右移动
- python - python反向列表代码中的-1,-1,-1如何工作?我想知道原理
- python - 将数据框中的列复制到特定列的新数据框中