MnemoCore / tests /test_multi_hop.py
Granis87's picture
Upload folder using huggingface_hub
c3a3710 verified
import pytest
import numpy as np
from mnemocore.core.synapse import SynapticConnection
from mnemocore.core.synapse_index import SynapseIndex
def test_get_multi_hop_neighbors():
index = SynapseIndex()
# Create nodes A, B, C, D
# A <-> B (weight 0.8)
# B <-> C (weight 0.5)
# C <-> D (weight 0.9)
# A <-> C (weight 0.1)
syn_ab = index.add_or_fire("A", "B")
syn_ab.strength = 0.8
syn_bc = index.add_or_fire("B", "C")
syn_bc.strength = 0.5
syn_cd = index.add_or_fire("C", "D")
syn_cd.strength = 0.9
syn_ac = index.add_or_fire("A", "C")
syn_ac.strength = 0.1
# 1 hop from A
hops_1 = index.get_multi_hop_neighbors("A", depth=1)
assert hops_1["B"] == pytest.approx(0.8)
assert hops_1["C"] == pytest.approx(0.1)
assert "D" not in hops_1
hops_2 = index.get_multi_hop_neighbors("A", depth=2)
assert hops_2["B"] == pytest.approx(0.8)
assert hops_2["C"] == pytest.approx(0.4)
assert hops_2["D"] == pytest.approx(0.09)
hops_3 = index.get_multi_hop_neighbors("A", depth=3)
assert hops_3["D"] == pytest.approx(0.36)