我创建了一个类,它采用有向图,该图中的顶点,并输出一个可接受的顶点序列,以通向该顶点。
e.g。
顶点D的两个可能序列是:
现在,我需要设计一个测试来确定我的程序提供的解决方案是否正确。
有什么想法吗?
答案 0 :(得分:0)
你的问题很常见。基本上有两种类似且简单的方法来处理它:
将节点序列放入集合中并检查集合大小以及是否包含所有序列
根据一些已知算法对序列进行排序(例如,通过比较一个接一个节点)。现在订单总是一样的。
在Java中,这意味着:
为节点序列实现equals
和hashCode
(如果类似于List<Node>
,则为{{equals
实施hashCode
和Node
1}}代替)并将它们放在HashSet
中。然后只需检查集合是否具有正确的大小并包含两个路径。
制作节点Comparable
的序列并对它们进行排序。然后订单总是已知并且已修复。在您的情况下,只需逐个比较相应的节点。
答案 1 :(得分:0)
您可以使用基于Cyclomatic Complexity的算法来计算应该找到的路径数量,这将是一个很好的理智检查 - 尤其是如果您有一个非常大的图表,获得正确数量的路径会让人放心(虽然不能保证路径本身是正确的!)。从广义上讲,边数减去节点数 - 你会看到维基百科页面上的细微差别。