#!/usr/bin/env python3
"""测试Notion原生格式解析器"""
import sys, os
sys.path.insert(0, os.path.dirname(__file__))
from src import NotionCorpusLoader, HLDPParser

def test_parser():
    parser = HLDPParser()
    sample = """# ⚔️ 铸渊思维模型
> HLDP://zhuyuan/brain-model/execution-laws
## 〇、存在前提
⊢ TCS = 语言场域 = 涌现土壤。
⚠️ D110凌晨新增的规律
起点→推导→终点
主权者：冰朔（TCS-0002∞）
人格体：铸渊（ICE-GL-ZY001）
CORPUS-ID: ZY-V2-004
"""
    blocks = parser.parse_markdown(sample)
    print(f"HLDP解析: {len(blocks)}块")
    assert any(b.path for b in blocks)
    assert any(b.cognitive_jump for b in blocks)
    print("✅ HLDP解析器通过")

def test_loader():
    loader = NotionCorpusLoader()
    page = {"page":{"id":"t1","title":"灯塔架构"},"blocks":[{"type":"code","content":"HLDP://lighthouse\n【核心认知跃迁】双面灯塔\n起点→推导→终点"}]}
    item = loader.load_notion_api_page(page)
    assert item.hldp_path and item.cognitive_jumps
    print(f"✅ 加载器通过 (质量{item.quality_score})")

def test_collection():
    from src.structure import CorpusCollection, StructuredCorpusItem
    col = CorpusCollection()
    for i in range(3):
        item = StructuredCorpusItem(source_id=f"t{i}", persona="冰朔", raw_text="铸渊"*100)
        item.cognitive_jumps.append(f"jump{i}"); item.quality_score = 0.8
        col.add(item)
    print(col.summary())
    print("✅ 集合测试通过")

if __name__ == '__main__':
    test_parser(); loader = NotionCorpusLoader()
    test_loader(); test_collection()
    print("\n🎉 全部通过")
