from __future__ import annotations
import pytest
from parser_output import (
extract_bounding_boxes,
extract_tables,
render_text,
shape_parse_response,
shape_parser_output,
)
def test_extracts_and_normalizes_bounding_boxes() -> None:
raw = """
{"label":"title","bbox":[100,200,900,400]}
[0.1, 0.3, 0.8, 0.9]
{"label":"invalid","bbox":[5,5,1,1]}
"""
boxes = extract_bounding_boxes(raw)
assert len(boxes) == 2
assert boxes[0]["label"] == "title"
assert boxes[0]["bbox"] == [0.1, 0.2, 0.9, 0.4]
assert boxes[1]["bbox"] == [0.1, 0.3, 0.8, 0.9]
def test_sanitizes_tables() -> None:
raw = """
"""
table = extract_tables(raw)
assert " None:
rendered = render_text(
'# Heading\n\n\n\n[unsafe](javascript:alert(1))'
)
assert "Heading
" in rendered
assert "