Adding Festinger with wordnet

This commit is contained in:
2026-04-19 16:16:13 +02:00
parent a27aa713d3
commit 8ff73d32ae
48 changed files with 485400 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
"""
Test helpers — populate the in-memory cache directly without touching Postgres.
All collision detection, recollection rendering, and queue routing logic operates
entirely on the module-level dicts in festinger.cache, so unit tests can inject
state there directly and assert outcomes without a live database.
"""
from __future__ import annotations
from festinger import cache
from festinger.cache import SoasRow, UrdEdge
def reset_cache() -> None:
"""Clear all in-memory state. Call at the start of each test."""
cache.soas_by_token.clear()
cache.soas_by_id.clear()
cache.urd_by_concept.clear()
cache.urd_by_concept_dim.clear()
cache.pending_conflicts.clear()
cache._encounter_deltas.clear()
def add_soas(id: int, token: str, saliency: float = 0.0, novelty: float = 0.0) -> SoasRow:
row = SoasRow(id=id, token=token, saliency=saliency, novelty=novelty)
cache.soas_by_token[token] = row
cache.soas_by_id[id] = token
return row
def add_urd(
concept_id: int,
parent_id: int,
dim_id: int,
is_isa: bool,
confidence: float = 0.9,
source: str = "test",
) -> UrdEdge:
parent_token = cache.soas_by_id.get(parent_id, str(parent_id))
dim_token = cache.soas_by_id.get(dim_id, str(dim_id))
edge = UrdEdge(
concept_id=concept_id,
parent_id=parent_id,
dim_id=dim_id,
is_isa=is_isa,
confidence=confidence,
source=source,
parent_token=parent_token,
dim_token=dim_token,
)
cache.urd_by_concept.setdefault(concept_id, []).append(edge)
cache.urd_by_concept_dim[(concept_id, dim_id)] = edge
return edge