graphRAG / tests /test_basic.py
nvtitan's picture
Upload 24 files
e884643 verified
"""
Basic tests for GraphLLM components
"""
import pytest
from models import Chunk, ChunkType, GraphNode, GraphEdge, Triple, NodeType, RelationType
from config import settings
def test_chunk_creation():
"""Test chunk model creation"""
chunk = Chunk(
pdf_id="test-pdf",
page_number=1,
char_range=(0, 100),
type=ChunkType.PARAGRAPH,
text="This is a test chunk."
)
assert chunk.pdf_id == "test-pdf"
assert chunk.page_number == 1
assert chunk.type == ChunkType.PARAGRAPH
assert chunk.text == "This is a test chunk."
def test_graph_node_creation():
"""Test graph node creation"""
node = GraphNode(
label="Test Concept",
type=NodeType.CONCEPT,
aliases=["test", "concept"],
supporting_chunks=[],
importance_score=0.75
)
assert node.label == "Test Concept"
assert node.type == NodeType.CONCEPT
assert node.importance_score == 0.75
def test_graph_edge_creation():
"""Test graph edge creation"""
edge = GraphEdge(
from_node="node1",
to_node="node2",
relation=RelationType.USES,
confidence=0.8,
supporting_chunks=[]
)
assert edge.from_node == "node1"
assert edge.to_node == "node2"
assert edge.relation == RelationType.USES
assert edge.confidence == 0.8
def test_triple_creation():
"""Test triple model"""
triple = Triple(
subject="Machine Learning",
predicate="uses",
object="Neural Networks",
confidence=0.9,
page_number=5
)
assert triple.subject == "Machine Learning"
assert triple.predicate == "uses"
assert triple.object == "Neural Networks"
assert triple.confidence == 0.9
def test_settings_load():
"""Test configuration loading"""
assert settings.app_name == "GraphLLM"
assert settings.chunk_size > 0
assert settings.embedding_model is not None
@pytest.mark.asyncio
async def test_pdf_processor_import():
"""Test PDF processor can be imported"""
from pdf_processor import PDFProcessor
processor = PDFProcessor()
assert processor is not None
@pytest.mark.asyncio
async def test_embedding_service_import():
"""Test embedding service can be imported"""
from embedding_service import EmbeddingService
# Note: This will load the model, may take time
# service = EmbeddingService()
# assert service is not None
pass
@pytest.mark.asyncio
async def test_graph_store_import():
"""Test graph store can be imported"""
from graph_store import GraphStore
store = GraphStore(use_neo4j=False)
assert store is not None
if __name__ == "__main__":
pytest.main([__file__, "-v"])