背景
我正在构建一种树形数据结构的单元测试(使用Python 3),该数据结构使用无序集合。我正在努力寻找测试我的树类的某些方法的方法。
示例
给定下面所示的树形图...我有一个方法,可以分离一个节点(比如#2),然后选择其中一个子节点(3或4)来代替它,而不是将它们都与节点1关联起来。(在#2是根节点且我们仍希望在丢弃#2时保持3和4相关时,这很有用。)
1----------+ 2 1----------+
| | | |
+---2---+ | Detaching Node "2" 3---+ |
| | 11 --> /|\ | 11
3 4 /| \ 5 6 7 | /| \
/|\ /|\ 12 13 14 4 12 13 14
5 6 7 8 9 10 /|\
8 9 10
问题
集合是无序的,我选择子节点(3和4)的方式是检查节点2是否有子节点,然后从其子节点集合中弹出一个子节点并将其作为所选节点。由于集合是无序的,当我弹出子节点时,在我的测试用例中会得到(看似)随机的结果。
问题
如何测试这样的方法(我已经了解到使用随机模块时的测试困难,但我也知道集合具有某种可预测的顺序)?我应该只是在这个问题周围进行测试吗?还是应该尝试弄清楚集合将被“弹出”的顺序?