MCPcopy
hub / github.com/joowani/binarytree / test_tree_validate

Function test_tree_validate

tests/test_tree.py:853–896  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

851
852
853def test_tree_validate() -> None:
854 class TestNode(Node):
855 def __setattr__(self, attr: str, value: Any) -> None:
856 object.__setattr__(self, attr, value)
857
858 root = Node(1)
859 root.validate() # Should pass
860
861 root = Node(1)
862 root.left = Node(2)
863 root.validate() # Should pass
864
865 root = Node(1)
866 root.left = Node(2)
867 root.right = Node(3)
868 root.validate() # Should pass
869
870 root = Node(1)
871 root.left = Node(2)
872 root.right = Node(3)
873 root.left.left = Node(4)
874 root.left.right = Node(5)
875 root.left.right.left = Node(6)
876 root.validate() # Should pass
877
878 root = TestNode(1)
879 root.left = "not_a_node" # type: ignore
880 with pytest.raises(NodeTypeError) as err1:
881 root.validate()
882 assert str(err1.value) == "invalid node instance at index 1"
883
884 root = TestNode(1)
885 root.right = TestNode(2)
886 root.right.val = EMPTY_LIST
887 with pytest.raises(NodeValueError) as err2:
888 root.validate()
889 assert str(err2.value) == "invalid node value at index 2"
890
891 root = TestNode(1)
892 root.left = TestNode(2)
893 root.left.right = root
894 with pytest.raises(NodeReferenceError) as err3:
895 root.validate()
896 assert str(err3.value) == "cyclic reference at Node(1) (level-order index 4)"
897
898
899def test_tree_validate_with_letters() -> None:

Callers

nothing calls this directly

Calls 3

NodeClass · 0.90
TestNodeClass · 0.85
validateMethod · 0.80

Tested by

no test coverage detected