|
| 1 | +package org.numenta.nupic.model; |
| 2 | + |
| 3 | +import org.junit.Test; |
| 4 | +import static org.junit.Assert.*; |
| 5 | + |
| 6 | +public class SynapseTest { |
| 7 | + @Test |
| 8 | + public void testSynapseEquality() { |
| 9 | + // Make stuff we need to perform the tests |
| 10 | + Column column = new Column(1, 0); |
| 11 | + Cell cell1 = new Cell(column, 0); |
| 12 | + Cell cell2 = new Cell(column, 1); |
| 13 | + DistalDendrite segment1 = new DistalDendrite(cell1, 0, 0, 0); |
| 14 | + DistalDendrite segment2 = new DistalDendrite(cell1, 1, 1, 1); |
| 15 | + |
| 16 | + // These are the Synapse objects we will use for the tests |
| 17 | + Synapse synapse1 = new Synapse(); |
| 18 | + Synapse synapse2 = new Synapse(); |
| 19 | + |
| 20 | + /* ----- These are the equality tests: ----- */ |
| 21 | + // synapse1 should equal itself |
| 22 | + assertTrue(synapse1.equals(synapse1)); |
| 23 | + |
| 24 | + // synapse1 should not equal null |
| 25 | + assertFalse(synapse1.equals(null)); |
| 26 | + |
| 27 | + // synapse1 should not equal a non-Synapse object |
| 28 | + assertFalse(synapse1.equals("This is not a Synapse object")); |
| 29 | + |
| 30 | + // synapse1 should not equal synapse2 because synapse2's |
| 31 | + // inputIndex != synapse1's inputIndex |
| 32 | + synapse1.setPresynapticCell(cell1); |
| 33 | + assertFalse(synapse1.equals(synapse2)); |
| 34 | + |
| 35 | + // synapse1 should not equal synapse2 because synapse1's |
| 36 | + // segment is null, but synapse2's segment is not null |
| 37 | + synapse2 = new Synapse(cell1, segment1, 0, 0); |
| 38 | + assertFalse(synapse1.equals(synapse2)); |
| 39 | + |
| 40 | + // synapse1 should not equal synapse2 because synapse1's |
| 41 | + // segment != synapse2's segment |
| 42 | + synapse1 = new Synapse(cell1, segment2, 0, 0); |
| 43 | + assertFalse(synapse1.equals(synapse2)); |
| 44 | + |
| 45 | + // synapse1 should not equal synapse2 because synapse1's |
| 46 | + // sourceCell is null, but synapse2's sourceCell is not null |
| 47 | + synapse1.setPresynapticCell(null); |
| 48 | + assertFalse(synapse1.equals(synapse2)); |
| 49 | + |
| 50 | + // synapse1 should not equal synapse2 because synapse1's |
| 51 | + // sourceCell != synapse2's sourceCell |
| 52 | + synapse1.setPresynapticCell(cell2); |
| 53 | + assertFalse(synapse1.equals(synapse2)); |
| 54 | + |
| 55 | + // synapse1 should not equal synapse2 because synapse1's |
| 56 | + // synapseIndex != synapse2's synapseIndex |
| 57 | + synapse1 = new Synapse(cell1, segment1, 0, 0); |
| 58 | + synapse2 = new Synapse(cell1, segment1, 1, 0); |
| 59 | + assertFalse(synapse1.equals(synapse2)); |
| 60 | + |
| 61 | + // synapse1 should not equal synapse2 because synapse1's |
| 62 | + // permanence != synapse2's permanence |
| 63 | + synapse1 = new Synapse(cell1, segment1, 0, 0); |
| 64 | + synapse2 = new Synapse(cell1, segment1, 0, 1); |
| 65 | + assertFalse(synapse1.equals(synapse2)); |
| 66 | + |
| 67 | + // synapse1 should equal synapse2 because all of their |
| 68 | + // relevant properties are equal |
| 69 | + synapse1 = new Synapse(cell1, segment1, 0, 0); |
| 70 | + synapse2 = new Synapse(cell1, segment1, 0, 0); |
| 71 | + assertTrue(synapse1.equals(synapse2)); |
| 72 | + } |
| 73 | +} |
0 commit comments