def test_single_word_case(): tree = ImmutableParentedTree.fromstring("""(ROOT (S (NP (NP (JJ Strong) (NN programming) (NNS skills)) (PP (IN in) (NP (NNP Java)))) (VP (VBP are) (VP (VBN required))) (. .))) """) words = ["Java"] expected = TreeRegexp('NP', [TreeRegexp('NP', [TreeRegexp('JJ', ['Strong']), TreeRegexp('NN', ['programming']), TreeRegexp('NNS', ['skills'])]), TreeRegexp('PP', [TreeRegexp('IN', ['in']), TreeRegexp('NP', [MatchAllNode()])])]) actual = produce_patterns(tree, words) assert_equal(len(actual), 1) assert_equal(actual[0], expected)
def test_parallel_words(): tree = ImmutableParentedTree.fromstring(""" (ROOT (NP (NP (NP (QP (IN At) (JJS least) (CD 3)) (NNS years) (NN experience)) (PP (IN in) (NP (NN programming)))) (PP (IN in) (NP (NNP Java) (CC and) (NNP C++))))) """) words = ["Java", "C++", "Python", "Closure"] expected = TreeRegexp('PP', [TreeRegexp('IN', ['in']), TreeRegexp('NP', [MatchAllNode(), TreeRegexp('CC', ['and']), MatchAllNode()])]) actual = produce_patterns(tree, words) assert_equal(len(actual), 1) assert_equal(actual[0], expected)