def test_handle_min_more(self): desc = PatternConstructor.build_seq_desc(ast.Repeater(lower=2)) is_matched, rem_nodes = self.matcher._handle_range(desc, [self.node0, self.node1, self.node3]) assert is_matched assert not rem_nodes
def test_handle_max_more(self): desc = PatternConstructor.build_seq_desc(ast.Repeater(upper=3)) is_matched, rem_nodes = self.matcher._handle_range(desc, [self.node0, self.node1, self.node2, self.node3]) assert is_matched assert len(rem_nodes) == 1 assert rem_nodes[0] == self.node3
def test_handle_max_exact(self): desc = PatternConstructor.build_seq_desc(ast.Repeater(upper=3)) is_matched, rem_nodes = self.matcher._handle_range(desc, [self.node0, self.node1, self.node2]) assert is_matched assert not rem_nodes
def test_handle_range_less(self): desc = PatternConstructor.build_seq_desc(ast.Repeater(1, 2)) is_matched, rem_nodes = self.matcher._handle_range(desc, []) assert not is_matched
def test_not_is_lower_matched(self): desc = PatternConstructor.build_seq_desc(ast.Repeater(lower=2, upper=2)) is_matched, rem_nodes = self.matcher._is_lower_matched(desc, [self.node0]) assert not is_matched
def test_is_lower_matched(self): desc = PatternConstructor.build_seq_desc(ast.Repeater(lower=2, upper=2)) is_matched, rem_nodes = self.matcher._is_lower_matched(desc, [self.node0, self.node1, self.node2]) assert is_matched assert len(rem_nodes) == 1 assert rem_nodes[0] == self.node2