Skip to content

Commit c94dfa3

Browse files
authored
test(grammar): cover escaped JSON Pointer reference tokens
Added parameterized test for grammar JSON pointer escapes.
1 parent fea0e96 commit c94dfa3

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

‎tests/test_llama_grammar.py‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import llama_cpp
22
import json
3+
import pytest
34

45
tree = """
56
leaf ::= "."
@@ -76,3 +77,23 @@ def test_grammar_anyof():
7677
grammar = llama_cpp.LlamaGrammar.from_json_schema(json.dumps(sch))
7778

7879
# assert grammar.grammar is not None
80+
81+
82+
@pytest.mark.parametrize(
83+
("definition_name", "reference_token"),
84+
[
85+
("a/b", "a~1b"),
86+
("a~b", "a~0b"),
87+
("a~1b", "a~01b"),
88+
("a~/b", "a~0~1b"),
89+
],
90+
)
91+
def test_grammar_json_pointer_escapes(definition_name, reference_token):
92+
schema = {
93+
"$defs": {definition_name: {"const": 42}},
94+
"$ref": f"#/$defs/{reference_token}",
95+
}
96+
97+
grammar = llama_cpp.LlamaGrammar.from_json_schema(json.dumps(schema))
98+
99+
assert '::= "42"' in grammar._grammar

0 commit comments

Comments
 (0)