2015-08-15 07:30:09 +08:00
|
|
|
from nose.tools import assert_equal
|
2016-06-26 10:08:54 +08:00
|
|
|
from nose.tools import raises
|
2015-08-15 07:30:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
class TestBstValidate(object):
|
|
|
|
|
2016-06-26 10:08:54 +08:00
|
|
|
@raises(Exception)
|
|
|
|
def test_bst_validate_empty(self):
|
|
|
|
validate_bst(None)
|
|
|
|
|
2015-08-15 07:30:09 +08:00
|
|
|
def test_bst_validate(self):
|
|
|
|
node = Node(5)
|
|
|
|
insert(node, 8)
|
|
|
|
insert(node, 5)
|
|
|
|
insert(node, 6)
|
|
|
|
insert(node, 4)
|
|
|
|
insert(node, 7)
|
|
|
|
assert_equal(validate_bst(node), True)
|
|
|
|
|
|
|
|
root = Node(5)
|
|
|
|
left = Node(5)
|
|
|
|
right = Node(8)
|
|
|
|
invalid = Node(20)
|
|
|
|
root.left = left
|
|
|
|
root.right = right
|
|
|
|
root.left.right = invalid
|
|
|
|
assert_equal(validate_bst(root), False)
|
|
|
|
|
|
|
|
print('Success: test_bst_validate')
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
test = TestBstValidate()
|
2016-06-26 10:08:54 +08:00
|
|
|
test.test_bst_validate_empty()
|
2015-08-15 07:30:09 +08:00
|
|
|
test.test_bst_validate()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|