mirror of
https://github.com/VectifyAI/PageIndex.git
synced 2026-07-15 21:11:05 +02:00
37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
|
|
"""Markdown page-content selection must return exactly the requested lines,
|
||
|
|
mirroring the PDF path — not the whole [min, max] range (PR #272 review / #280)."""
|
||
|
|
|
||
|
|
|
||
|
|
def _md_structure():
|
||
|
|
# line_num 40 sits *between* 5 and 100 but is NOT requested below.
|
||
|
|
return [
|
||
|
|
{"line_num": 5, "text": "line five", "nodes": [
|
||
|
|
{"line_num": 40, "text": "line forty (should be excluded)", "nodes": []},
|
||
|
|
]},
|
||
|
|
{"line_num": 100, "text": "line hundred", "nodes": []},
|
||
|
|
{"line_num": 101, "text": "line 101", "nodes": []},
|
||
|
|
]
|
||
|
|
|
||
|
|
|
||
|
|
def test_get_md_page_content_returns_only_requested_lines():
|
||
|
|
from pageindex.index.utils import get_md_page_content
|
||
|
|
|
||
|
|
out = get_md_page_content(_md_structure(), [5, 100])
|
||
|
|
# exactly the two requested lines — not 5, 40, 100 (the old range behavior)
|
||
|
|
assert [r["page"] for r in out] == [5, 100]
|
||
|
|
assert all("forty" not in r["content"] for r in out)
|
||
|
|
|
||
|
|
|
||
|
|
def test_get_md_page_content_empty_spec():
|
||
|
|
from pageindex.index.utils import get_md_page_content
|
||
|
|
|
||
|
|
assert get_md_page_content(_md_structure(), []) == []
|
||
|
|
|
||
|
|
|
||
|
|
def test_retrieve_md_page_content_returns_only_requested_lines():
|
||
|
|
# The legacy retrieve path has its own copy of the same logic.
|
||
|
|
from pageindex.retrieve import _get_md_page_content
|
||
|
|
|
||
|
|
out = _get_md_page_content({"structure": _md_structure()}, [5, 100])
|
||
|
|
assert [r["page"] for r in out] == [5, 100]
|