Download tests/test_memory.py from StarAtNyte1/beam-boot: direct link, hf CLI and curl.
- Browser
- Download file 1.67 kB
-
https://huggingface.co/StarAtNyte1/beam-boot/resolve/main/tests/test_memory.py
- Command line
-
hf download hf://StarAtNyte1/beam-boot/tests/test_memory.py
-
curl -L -o test_memory.py https://huggingface.co/StarAtNyte1/beam-boot/resolve/main/tests/test_memory.py
1.67 kB
| import random | |
| import unittest | |
| from beamboot.memory import AttentionMemory | |
| class TestAttentionMemory(unittest.TestCase): | |
| def test_latest_write_and_missing(self): | |
| mem = AttentionMemory() | |
| self.assertIsNone(mem.read(3)) | |
| mem.write(3, 12) | |
| mem.write(5, 99) | |
| mem.write(3, 231) | |
| self.assertEqual(mem.read_byte(3), 231) | |
| self.assertEqual(mem.read_byte(5), 99) | |
| self.assertIsNone(mem.read(2)) | |
| def test_against_reference(self): | |
| randomizer = random.Random(42) | |
| mem, reference = AttentionMemory(temperature=0.00001), {} | |
| for _ in range(500): | |
| address = randomizer.randrange(16) | |
| if randomizer.random() < .55: | |
| value = randomizer.randrange(256) | |
| reference[address] = value | |
| mem.write(address, value) | |
| else: | |
| self.assertEqual(mem.read_byte(address), reference.get(address)) | |
| def test_sliding_window_forgets(self): | |
| mem = AttentionMemory(window=2) | |
| mem.write(1, 42) | |
| mem.write(2, 10) | |
| mem.write(3, 20) | |
| self.assertIsNone(mem.read(1)) | |
| self.assertEqual(mem.read_byte(2), 10) | |
| def test_softmax_is_not_exact(self): | |
| mem = AttentionMemory(temperature=1.0) | |
| mem.write(1, 0) | |
| mem.write(1, 255) | |
| self.assertNotEqual(mem.read_byte(1), 255) | |
| def test_validation(self): | |
| mem = AttentionMemory() | |
| with self.assertRaises(ValueError): mem.write(16, 1) | |
| with self.assertRaises(ValueError): mem.write(1, 256) | |
| with self.assertRaises(ValueError): mem.read(-1) | |
| if __name__ == '__main__': | |
| unittest.main() | |