用无序集对树数据结构进行Python单元测试

2024-09-30 14:21:47 发布

您现在位置:Python中文网/ 问答频道 /正文

背景

我正在尝试为我正在构建的树数据结构(python3)添加单元测试。树结构使用集合(无序),我正在努力寻找方法来测试我的树类的某些方法。你知道吗

示例

给出了一个有图解的树…我有一个方法可以分离一个节点(比如说#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是否有子节点,然后从他的子节点集中弹出一个子节点,并使其成为一个。因为集合是无序的,所以当我把孩子放下来的时候,我在我的测试用例中得到(看起来)随机的结果。你知道吗

问题

我的策略应该是什么来测试这样的方法(我读过关于使用随机模块时的测试困难的文章,但是我也读过集合确实有某种可预测的顺序)?我应该测试一下这个问题吗?我是不是应该试着弄清楚电视机的“弹出”顺序?你知道吗


Tags: 方法node示例数据结构节点顺序单元测试python3
1条回答
网友
1楼 · 发布于 2024-09-30 14:21:47

测试这个方法是否做了它应该做的事情。操作后,是否已将正确的节点替换为其子节点之一?如果是这样,太好了!如果没有,则报告失败。你知道吗

你不需要断言它已经被任何特定的子代所取代。你知道吗

相关问题 更多 >