Unit testing 如何确定依赖关系图解决方案是否正确

Unit testing 如何确定依赖关系图解决方案是否正确,unit-testing,testing,graph,dependencies,Unit Testing,Testing,Graph,Dependencies,我创建了一个类,该类接受一个有向图,该图中的一个顶点,并输出一个可接受的顶点序列以指向该顶点 e、 g A->B A->C B->D C->D 顶点D的两个可能序列是: A->B->C->D A->C->B->D 现在,我需要设计一个测试来确定我的程序给出的解决方案是否正确 有什么想法吗?你的问题很常见。基本上有两种类似且简单的处理方法: 将节点序列放在一个集合中,并检查集合大小以及它是否包含所有序列 根据一些已知的算法对序列进行排序,例如通过比较一个节点接一个节点。现在顺序总是一样的 在Jav

我创建了一个类,该类接受一个有向图,该图中的一个顶点,并输出一个可接受的顶点序列以指向该顶点

e、 g

A->B A->C B->D C->D 顶点D的两个可能序列是:

A->B->C->D A->C->B->D 现在,我需要设计一个测试来确定我的程序给出的解决方案是否正确


有什么想法吗?

你的问题很常见。基本上有两种类似且简单的处理方法:

将节点序列放在一个集合中,并检查集合大小以及它是否包含所有序列

根据一些已知的算法对序列进行排序,例如通过比较一个节点接一个节点。现在顺序总是一样的

在Java中,这意味着:

为节点序列实现equals和hashCode如果这类似于List,则为节点实现equals和hashCode,并将它们放在HashSet中。然后只需检查集合的大小是否正确,是否包含两条路径

使节点序列具有可比性并对其进行排序。然后,顺序总是已知和固定的。在您的例子中,只需逐个比较相应的节点


您可以使用基于的算法来计算应找到的路径数,这将是一个很好的健全性检查-尤其是如果您有一个非常大的图形,获得正确的路径数将是令人放心的,尽管显然不能保证路径本身是正确的!。广义上讲,就是边的数量减去节点的数量——你会在维基百科页面上看到细微差别

这似乎是假设我事先知道解决方案。我需要能够把一个非常复杂的图形,并有解决方案,特别是通过测试检查。有什么想法吗?