Python 树数据结构的无序集单元测试
Python Unit Testing with Unordered Set for Tree Data Structure
背景
我正在尝试为我正在构建的树数据结构添加单元测试 (python 3)。树结构使用集合(无序),我正在努力寻找方法来测试我的树的某些方法 class。
例子
鉴于图表树...我有一种方法可以分离一个节点(比如#2),然后选择其中一个 children(3 或 4)来取代它的位置而不是父节点它们都到节点 1。(这在假设 #2 是根并且我们仍然希望 3 和 4 在 2 被丢弃时相关的情况下很有用。)
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
问题
集合是无序的,我select child(3和4中)的方法是检查节点2是否有children,然后弹出一个child 从他的一组 children 中取出,并使之成为那个。因为集合是无序的,所以当我关闭 child 时,我在测试用例中得到(看似)随机结果。
问题
我的策略应该是什么来测试这样的方法(我读过有关使用随机模块时测试困难的文章,但我也读过集合确实有某种可预测的顺序)?我应该只测试 around 这个问题吗?我应该试着弄清楚集合的顺序是 "popped" 吗?
测试该方法是否完成了它应该做的事情。运行后,正确的节点是否被其children之一替换了?如果是这样,太好了!如果不是,则报告失败。
您无需断言它已被任何特定的 child 取代。
背景
我正在尝试为我正在构建的树数据结构添加单元测试 (python 3)。树结构使用集合(无序),我正在努力寻找方法来测试我的树的某些方法 class。
例子
鉴于图表树...我有一种方法可以分离一个节点(比如#2),然后选择其中一个 children(3 或 4)来取代它的位置而不是父节点它们都到节点 1。(这在假设 #2 是根并且我们仍然希望 3 和 4 在 2 被丢弃时相关的情况下很有用。)
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
问题
集合是无序的,我select child(3和4中)的方法是检查节点2是否有children,然后弹出一个child 从他的一组 children 中取出,并使之成为那个。因为集合是无序的,所以当我关闭 child 时,我在测试用例中得到(看似)随机结果。
问题
我的策略应该是什么来测试这样的方法(我读过有关使用随机模块时测试困难的文章,但我也读过集合确实有某种可预测的顺序)?我应该只测试 around 这个问题吗?我应该试着弄清楚集合的顺序是 "popped" 吗?
测试该方法是否完成了它应该做的事情。运行后,正确的节点是否被其children之一替换了?如果是这样,太好了!如果不是,则报告失败。
您无需断言它已被任何特定的 child 取代。