48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from adapters.qdrant import _source_refs
|
|
|
|
|
|
def test_descriptor_source_ref_comes_from_attachment_not_heading_page():
|
|
refs = _source_refs({
|
|
"chunk_kind": "block_descriptor",
|
|
"heading_physical_page": 208,
|
|
"source_page_range": [209, 209],
|
|
"printed_page_range": [210, 210],
|
|
"attachments": [{
|
|
"block_id": "p209_t0",
|
|
"physical_page": 209,
|
|
"printed_page": 210,
|
|
"bbox": [49.5, 68.1, 289.4, 789.4],
|
|
"source_crop": "crops/p209_t0.png",
|
|
}],
|
|
})
|
|
|
|
assert len(refs) == 1
|
|
assert refs[0].physical_page == 209
|
|
assert refs[0].printed_page == 210
|
|
assert refs[0].block_id == "p209_t0"
|
|
assert refs[0].bbox == (49.5, 68.1, 289.4, 789.4)
|
|
assert refs[0].source_crop == "crops/p209_t0.png"
|
|
assert refs[0].precision == "region"
|
|
|
|
|
|
def test_prose_ref_uses_exact_chunk_range_and_keeps_attachment_region():
|
|
refs = _source_refs({
|
|
"chunk_kind": "prose",
|
|
"heading_physical_page": 100,
|
|
"source_page_range": [104, 105],
|
|
"printed_page_range": [105, 106],
|
|
"attachments": [{
|
|
"block_id": "p105_t0",
|
|
"physical_page": 105,
|
|
"printed_page": 106,
|
|
"bbox": [1.0, 2.0, 3.0, 4.0],
|
|
}],
|
|
})
|
|
|
|
assert refs[0].physical_page == 104
|
|
assert refs[0].page_range == (104, 105)
|
|
assert refs[0].printed_page_range == (105, 106)
|
|
assert refs[1].block_id == "p105_t0"
|
|
assert refs[1].physical_page == 105
|
|
assert refs[1].printed_page == 106
|