     "source": [
      "## Test Cases\n",
      "\n",
      "* 0 -> []\n",
      "* 1 -> ['()']\n",
      "* 2 -> ['(())', '()()']\n",
      "* 3 -> ['((()))', '(()())', '(())()', '()(())', '()()()']\n",
      "</pre>"
     ]
 
</s> remove     "* 1 -> [()]\n",
    "* 2 -> [(()), ()()]\n",
    "* 3 -> [((())), (()()), (())(), ()(()), ()()()]"
 </s> add     "* 1 -> ['()']\n",
    "* 2 -> ['(())', '()()']\n",
    "* 3 -> ['((()))', '(()())', '(())()', '()(())', '()()()']\n",
    "</pre>" </s> remove     "* 0 -> ' '\n",
    "* 1 -> ()\n",
    "* 2 -> (()), ()()\n",
    "* 3 -> ((())), (()()), (())(), ()(()), ()()()"
 </s> add     "<pre>\n",
    "* None -> Exception\n",
    "* Negative -> Exception\n",
    "* 0 -> []\n",
    "* 1 -> ['()']\n",
    "* 2 -> ['(())', '()()']\n",
    "* 3 -> ['((()))', '(()())', '(())()', '()(())', '()()()']\n",
    "</pre>" </s> remove     "## Problem: Print all valid combinations of n-pairs of parentheses.\n",
 </s> add     "## Problem: Find all valid combinations of n-pairs of parentheses.\n", </s> remove     "## Problem: Print all valid combinations of n-pairs of parentheses.\n",
 </s> add     "## Problem: Find all valid combinations of n-pairs of parentheses.\n", </s> remove     def test_pair_parentheses(self, solution):
        assert_equal(solution(0), set([]))
        assert_equal(solution(1), set(['()']))
        assert_equal(solution(2), set(['(())', 
                                       '()()']))
        assert_equal(solution(3), set(['((()))', 
                                       '(()())', 
                                       '(())()', 
                                       '()(())', 
                                       '()()()']))
 </s> add     def test_pair_parentheses(self):
        parentheses = Parentheses()
        assert_raises(TypeError, parentheses.find_pair, None)
        assert_raises(ValueError, parentheses.find_pair, -1)
        assert_equal(parentheses.find_pair(0), [])
        assert_equal(parentheses.find_pair(1), ['()'])
        assert_equal(parentheses.find_pair(2), ['(())',
                                                '()()'])
        assert_equal(parentheses.find_pair(3), ['((()))',
                                                '(()())',
                                                '(())()',
                                                '()(())',
                                                '()()()'])
    "<pre>\n",
    "* None -> Exception\n",
    "* Negative -> Exception\n",
     "source": [
      "## Test Cases\n",
      "\n",
    "<pre>\n",
    "* None -> Exception\n",
    "* Negative -> Exception\n",
      "* 0 -> []\n",
      "* 1 -> ['()']\n",
      "* 2 -> ['(())', '()()']\n",
      "* 3 -> ['((()))', '(()())', '(())()', '()(())', '()()()']\n",
      "</pre>"
     ]
keep keep add keep keep keep keep keep keep
 Rework n pairs parens challenge (#145) 
recursion_dynamic/n_pairs_parentheses/n_pairs_parentheses_challenge.ipynb