File size: 1,449 Bytes
69800cb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# test_stdpCommunicator.py
import os
import sys
import unittest
# Step 1: Determine the parent directory
parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))

# Step 2: Append the parent directory to sys.path
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()