      "        assert_equal(dest.pop(), None)\n",
      "\n",
      "        print('Test: 1 disk')\n",
      "        src.push(5)\n",
      "        hanoi(num_disks, src, dest, buff)\n",
      "        assert_equal(dest.pop(), 5)\n",
      "\n",
      "        print('Test: 2 or more disks')\n",
      "        for i in range(num_disks, -1, -1):\n",
      "            src.push(i)\n",
 
</s>
    "        hanoi.move_disks(num_disks, src, dest, buff)\n",
      "        assert_equal(dest.pop(), None)\n",
      "\n",
      "        print('Test: 1 disk')\n",
      "        src.push(5)\n",
    "        hanoi.move_disks(num_disks, src, dest, buff)\n",
      "        assert_equal(dest.pop(), 5)\n",
      "\n",
      "        print('Test: 2 or more disks')\n",
      "        for i in range(num_disks, -1, -1):\n",
      "            src.push(i)\n",
keep keep keep keep replace keep keep keep keep keep
 Update hanoi challenge (#121)

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