      "class TestHanoi(object):\n",
      "\n",
      "    def test_hanoi(self):\n",
      "        num_disks = 3\n",
      "        src = Stack()\n",
      "        buff = Stack()\n",
      "        dest = Stack()\n",
 
</s> remove     "        hanoi(num_disks, None, None, None)\n",
 </s> add     "        assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)\n", </s> remove     "        hanoi(num_disks, None, None, None)\n",
 </s> add     "        assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)\n", </s> remove         hanoi(num_disks, None, None, None)
 </s> add         assert_raises(TypeError, hanoi.move_disks, num_disks, None, None, None)
    "        hanoi = Hanoi()\n",
      "class TestHanoi(object):\n",
      "\n",
      "    def test_hanoi(self):\n",
    "        hanoi = Hanoi()\n",
      "        num_disks = 3\n",
      "        src = Stack()\n",
      "        buff = Stack()\n",
      "        dest = Stack()\n",
keep keep add keep keep keep keep
 Update hanoi challenge (#121)

Update constraints and test cases.  Move implementation to a class.  Update tests. 
recursion_dynamic/hanoi/hanoi_challenge.ipynb