|
|
|
|
|
import os
|
|
|
import sys
|
|
|
import unittest
|
|
|
|
|
|
parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
|
|
|
|
|
|
|
|
if parent_dir not in sys.path:
|
|
|
sys.path.insert(0, parent_dir)
|
|
|
from communicator import Synapse, SpikeEncoder
|
|
|
|
|
|
class TestCommunicatorComponents(unittest.TestCase):
|
|
|
def test_synapse_initialization(self):
|
|
|
models = ["UI/UX", "Backend"]
|
|
|
synapse = Synapse(models)
|
|
|
self.assertEqual(synapse.weights, {"UI/UX": 0.5, "Backend": 0.5})
|
|
|
|
|
|
def test_synapse_update_weights(self):
|
|
|
models = ["UI/UX", "Backend"]
|
|
|
synapse = Synapse(models, learning_rate=0.1, decay=0.9)
|
|
|
synapse.update_weights(["UI/UX"])
|
|
|
self.assertTrue(synapse.weights["UI/UX"] > 0.5)
|
|
|
self.assertTrue(synapse.weights["Backend"] < 0.5)
|
|
|
|
|
|
def test_spike_encoder_encode(self):
|
|
|
encoder = SpikeEncoder(threshold=0.5)
|
|
|
activations = {"UI/UX": 0.6, "Backend": 0.4}
|
|
|
spikes = encoder.encode(activations)
|
|
|
self.assertEqual(spikes, {"UI/UX": 1, "Backend": 0})
|
|
|
|
|
|
def test_spike_encoder_decode(self):
|
|
|
encoder = SpikeEncoder()
|
|
|
spikes = {"UI/UX": 1, "Backend": 0}
|
|
|
decoded = encoder.decode(spikes)
|
|
|
self.assertEqual(decoded, {"UI/UX": 1.0, "Backend": 0.0})
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
unittest.main() |