from genesis.data_models import CellValue, ExcelTable, ExtractionMethod, SheetType from genesis.parsers.free_text_extractor import build_free_text_table, extract_text_blocks def test_extract_blocks_splits_on_empty_rows(): m = [["新入社員を登録。"], [], ["テスト要件:入力。"], [], []] assert extract_text_blocks(m) == ["新入社員を登録。", "テスト要件:入力。"] def test_build_free_text_table(): table = build_free_text_table("機能要件", ["A", "B"], "f.xlsx", SheetType.FUNCTION) assert isinstance(table, ExcelTable) assert table.detected_type == SheetType.FUNCTION assert table.extraction_method == "llm_from_free_text" assert len(table.rows) == 2 assert isinstance(table.rows[0]["text"], CellValue) assert table.rows[0]["text"].value == "A" def test_free_text_uses_enum_value(): table = build_free_text_table("メモ", ["A"], "f.xlsx") assert table.extraction_method == ExtractionMethod.LLM_FROM_FREE_TEXT.value