| | """
|
| | Test HAIMEngine Synapse Cleanup
|
| | """
|
| | import os
|
| | import pytest
|
| | from mnemocore.core.engine import HAIMEngine
|
| | from mnemocore.core.synapse import SynapticConnection
|
| | from mnemocore.core.config import reset_config
|
| |
|
| | @pytest.fixture
|
| | def test_engine(tmp_path):
|
| | reset_config()
|
| | data_dir = tmp_path / "data"
|
| | data_dir.mkdir()
|
| |
|
| | synapses_file = data_dir / "synapses.json"
|
| | os.environ["HAIM_DATA_DIR"] = str(data_dir)
|
| | os.environ["HAIM_MEMORY_FILE"] = str(data_dir / "memory.jsonl")
|
| | os.environ["HAIM_SYNAPSES_FILE"] = str(synapses_file)
|
| |
|
| | engine = HAIMEngine()
|
| | yield engine
|
| |
|
| |
|
| | if "HAIM_DATA_DIR" in os.environ:
|
| | del os.environ["HAIM_DATA_DIR"]
|
| | if "HAIM_MEMORY_FILE" in os.environ:
|
| | del os.environ["HAIM_MEMORY_FILE"]
|
| | if "HAIM_SYNAPSES_FILE" in os.environ:
|
| | del os.environ["HAIM_SYNAPSES_FILE"]
|
| | reset_config()
|
| |
|
| | @pytest.mark.asyncio
|
| | async def test_cleanup_decay(test_engine):
|
| | await test_engine.initialize()
|
| |
|
| |
|
| | syn1 = SynapticConnection("mem_1", "mem_2", initial_strength=0.05)
|
| | test_engine.synapses[("mem_1", "mem_2")] = syn1
|
| |
|
| |
|
| | syn2 = SynapticConnection("mem_3", "mem_4", initial_strength=0.2)
|
| | test_engine.synapses[("mem_3", "mem_4")] = syn2
|
| |
|
| |
|
| | assert len(test_engine.synapses) == 2
|
| |
|
| |
|
| | await test_engine.cleanup_decay(threshold=0.1)
|
| |
|
| |
|
| | assert len(test_engine._synapse_index) == 1
|
| | assert test_engine._synapse_index.get("mem_3", "mem_4") is not None
|
| | assert test_engine._synapse_index.get("mem_1", "mem_2") is None
|
| |
|
| |
|
| | assert os.path.exists(test_engine.synapse_path)
|
| |
|
| | @pytest.mark.asyncio
|
| | async def test_cleanup_no_decay(test_engine):
|
| | await test_engine.initialize()
|
| |
|
| | syn1 = SynapticConnection("mem_1", "mem_2", initial_strength=0.5)
|
| | test_engine.synapses[("mem_1", "mem_2")] = syn1
|
| |
|
| | await test_engine.cleanup_decay(threshold=0.1)
|
| |
|
| | assert len(test_engine._synapse_index) == 1
|
| |
|