import pytest

from marker.schema import BlockTypes


@pytest.mark.config({"page_range": [0]})
@pytest.mark.filename("adversarial_rot.pdf")
def test_rotated_bboxes(pdf_document):
    first_page = pdf_document.pages[0]

    # Ensure we match all text lines up properly
    text_lines = first_page.contained_blocks(pdf_document, (BlockTypes.Line,))
    text_blocks = first_page.contained_blocks(pdf_document, (BlockTypes.Text, BlockTypes.TextInlineMath))
    assert len(text_lines) == 86

    # Ensure the bbox sizes match up
    max_line_position = max([line.polygon.x_end for line in text_lines])
    max_block_position = max([block.polygon.x_end for block in text_blocks if block.source == "layout"])
    assert max_line_position <= max_block_position
