Commit Graph

5 Commits

Author SHA1 Message Date
Dave Pearson
745d595d4a Add unit tests for the new node removal methods
See #2462.
2023-05-08 09:55:32 +01:00
Dave Pearson
d350374e59 Revert Tree.clear and add Tree.reset
After some internal discussion we've decided to keep `Tree.clear` as it was,
and add a `Tree.reset`, which does a `Tree.clear` but resets the label and
data of `Tree.root` to the values given, while mirroring how `Tree.__init__`
takes those parameters.
2023-02-01 15:08:03 +00:00
Dave Pearson
78f49f0ab2 Allow replacement of the root node data when clearing the tree 2023-02-01 13:44:53 +00:00
Dave Pearson
ff7f2488f8 Remove Tree class name clash with how pytest works
Just before doing the commit I decided to rename the test tree in the new
unit test for clearing down a tree. Of course I managed to name it in such a
way that it becomes special to pytest.

This fixes that.
2023-02-01 12:45:18 +00:00
Dave Pearson
7563d4cb7e Allow setting a new label when performing a clear on a Tree
See #1437 for background. While it would be ideal to allow for the complete
emptying of a Tree, the root node is required (and it's part of the
construction of a Tree). So, here, when clearing the Tree we optionally
allow for a new label to be given.

Ideally we'll also allow for fresh data to be provided too; but there's a
wrinkle there in knowing the difference between the data being None, and no
data being provided (so the current root's data being carried over).
Following the method of defaulting used in __init__ would cause problems. As
such, rather than roll all of this into one commit, this goes with the basic
requirement and the solution for data will follow.

Note this also starts some unit tests for the clearing of a Tree.
2023-02-01 12:33:36 +00:00