     "metadata": {},
     "source": [
      "## Clarifying Questions\n",
      "\n",
      "* Is a naiive merge sort ok?\n",
      "    * Yes"
     ]
    },
    {
     "cell_type": "markdown",
 
</s> remove    "execution_count": null,
 </s> add    "execution_count": 2, </s> remove    "execution_count": null,
 </s> add    "execution_count": 1, </s> remove    "outputs": [],
 </s> add    "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Empty input\n",
      "One element\n",
      "Two or more elements\n",
      "Success: test_merge_sort\n"
     ]
    }
   ], </s> remove     "print('Empty input')\n",
    "data = []\n",
    "merge_sort(data)\n",
    "print(data)\n",
    "print('One element')\n",
    "data = [5]\n",
    "merge_sort(data)\n",
    "print(data)\n",
    "print('Two or more elements')\n",
    "data = [5, 1, 7, 2, 6, -3, 5, 7, -1]\n",
    "print(merge_sort(data))"
 </s> add     "from nose.tools import assert_equal\n",
    "\n",
    "class Test(object):\n",
    "    def test_merge_sort(self):\n",
    "        print('Empty input')\n",
    "        data = []\n",
    "        merge_sort(data)\n",
    "        assert_equal(data, [])\n",
    "\n",
    "        print('One element')\n",
    "        data = [5]\n",
    "        merge_sort(data)\n",
    "        assert_equal(data, [5])\n",
    "\n",
    "        print('Two or more elements')\n",
    "        data = [5, 1, 7, 2, 6, -3, 5, 7, -1]\n",
    "        data = merge_sort(data)\n",
    "        assert_equal(data, sorted(data))\n",
    "        \n",
    "        print('Success: test_merge_sort')\n",
    "\n",
    "if __name__ == '__main__':\n",
    "    test = Test()\n",
    "    test.test_merge_sort()"
    "*Problem statements are often intentionally ambiguous.  Identifying constraints and stating assumptions can help to ensure you code the intended solution.*\n",
    "\n",
    "* Are you looking for a naiive solution?\n",
     "metadata": {},
     "source": [
      "## Clarifying Questions\n",
      "\n",
    "*Problem statements are often intentionally ambiguous.  Identifying constraints and stating assumptions can help to ensure you code the intended solution.*\n",
    "\n",
    "* Are you looking for a naiive solution?\n",
      "    * Yes"
     ]
    },
    {
     "cell_type": "markdown",
keep keep keep keep replace keep keep keep keep keep
 Reworked notebook: Added more detail to constraints and test cases.  Reworked unit test. 
sorting-searching/merge-sort.ipynb