      "            j = j.next\n",
      "        return i.data"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 3,
     "metadata": {
      "collapsed": false
     },
 
</s> remove    "execution_count": null,
 </s> add    "execution_count": 3, </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": [
      "Test: Empty list\n",
      "Test: Not a circular linked list: One element\n",
      "Test: Not a circular linked list: Two elements\n",
      "Test: Not a circular linked list: Three or more elements\n",
      "Test: General case: Circular linked list\n",
      "Success: test_find_loop_start\n"
     ]
    }
   ],
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Unit Test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*It is important to identify and run through general and edge cases from the [Test Cases](#Test-Cases) section by hand.  You generally will not be asked to write a unit test like what is shown below.*"
   ]
  },
      "            j = j.next\n",
      "        return i.data"
     ]
    },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Unit Test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "*It is important to identify and run through general and edge cases from the [Test Cases](#Test-Cases) section by hand.  You generally will not be asked to write a unit test like what is shown below.*"
   ]
  },
    {
     "cell_type": "code",
     "execution_count": 3,
     "metadata": {
      "collapsed": false
     },
keep keep keep add keep keep keep keep keep keep
 Reworked notebook: Added more detail to constraints and test cases.  Reworked algorithm discussion and unit test. 
linked-lists/find-loop-start.ipynb