      "\n",
      "class TestBstValidate(object):\n",
      "\n",
      "    def test_bst_validate(self):\n",
      "        node = Node(5)\n",
      "        insert(node, 8)\n",
      "        insert(node, 5)\n",
      "        insert(node, 6)\n",
      "        insert(node, 4)\n",
 
</s> remove     "    return __validate_bst__(node, None, None)\n",
 </s> add     "    if node is None:\n",
    "        raise Exception('No root node')\n",
    "    return _validate_bst(node, None, None)\n",
    "    @raises(Exception)\n",
    "    def test_bst_validate_empty(self):\n",
    "        validate_bst(None)\n",
    "\n",
      "\n",
      "class TestBstValidate(object):\n",
      "\n",
    "    @raises(Exception)\n",
    "    def test_bst_validate_empty(self):\n",
    "        validate_bst(None)\n",
    "\n",
      "    def test_bst_validate(self):\n",
      "        node = Node(5)\n",
      "        insert(node, 8)\n",
      "        insert(node, 5)\n",
      "        insert(node, 6)\n",
      "        insert(node, 4)\n",
keep keep add keep keep keep keep keep keep
 Polish bst validate challenge and solution (#83)

Update constraints, test cases, tests, algorithm discussion, and code. 
graphs_trees/bst_validate/bst_validate_solution.ipynb