     },
     "outputs": [],
     "source": [
      "# %load test_selection_sort.py\n",
      "from nose.tools import assert_equal\n",
      "\n",
      "\n",
      "class TestSelectionSort(object):\n",
      "\n",
      "    def test_selection_sort(self, func):\n",
 
</s> remove     "from nose.tools import assert_equal\n",
 </s> add     "from nose.tools import assert_equal, assert_raises\n", </s> remove     "def selection_sort(data, start=0):\n",
    "    # TODO: Implement me (recursive)\n",
    "    pass"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def selection_sort_iterative(data):\n",
    "    # TODO: Implement me (iterative)\n",
    "    pass"
 </s> add     "class SelectionSort(object):\n",
    "\n",
    "    def sort(self, data):\n",
    "        # TODO: Implement me (recursive)\n",
    "        pass" </s> remove     "        data = None\n",
    "        func(data)\n",
    "        assert_equal(data, None)\n",
 </s> add     "        assert_raises(TypeError, func, None)\n", </s> remove     "        data = None\n",
    "        func(data)\n",
    "        assert_equal(data, None)\n",
 </s> add     "        assert_raises(TypeError, func, None)\n", </s> remove from nose.tools import assert_equal
 </s> add from nose.tools import assert_equal, assert_raises
    "from nose.tools import assert_equal, assert_raises\n",
     },
     "outputs": [],
     "source": [
      "# %load test_selection_sort.py\n",
    "from nose.tools import assert_equal, assert_raises\n",
      "\n",
      "\n",
      "class TestSelectionSort(object):\n",
      "\n",
      "    def test_selection_sort(self, func):\n",
keep keep keep keep replace keep keep keep keep keep
 Update selection sort challenge (#131)

Update constraints, test cases, code, and tests. 
sorting_searching/selection_sort/selection_sort_challenge.ipynb