/// <summary> /// Rebuilds specific element Watch lists (Cell, Distal, Proximal) /// from generic list of Selectable3DObjects from Engine. /// </summary> /// <param name="watchList"></param> public void RebuildWatchLists(List <Selectable3DObject> watchList) { bool add = true; Cell cell = null; DistalSynapse distal = null; ProximalSynapse proximal = null; WatchListCells.Clear(); WatchListDistal.Clear(); WatchListProximal.Clear(); foreach (var obj in watchList) { if (obj != null) { switch (obj.SelectablelType) { case SelectableObjectType.Cell: cell = (Cell)obj; if (add == true) { WatchListCells.Add(cell); } else { WatchListCells.Remove(cell); } break; case SelectableObjectType.DistalSynapse: distal = (DistalSynapse)obj; if (add == true) { WatchListDistal.Add(distal); } else { WatchListDistal.Remove(distal); } break; case SelectableObjectType.ProximalSynapse: proximal = (ProximalSynapse)obj; if (add == true) { WatchListProximal.Add(proximal); } else { WatchListProximal.Remove(proximal); } break; case SelectableObjectType.None: default: break; } } } }
public void TestSynapse() { this.DefaultSynapseValues(); var cell = new Cell(null, 0); cell.ActiveState[Global.T] = true; cell.LearnState[Global.T] = true; Synapse syn = new DistalSynapse(cell, Synapse.ConnectedPermanence); Assert.Equal(true, syn.IsConnected()); Assert.Equal(true, syn.IsActive(Global.T)); Assert.Equal(false, syn.IsActive(Global.T - 1)); Assert.Equal(false, syn.IsActiveFromLearning(Global.T - 1)); syn.DecreasePermanence(); Assert.Equal(false, syn.IsConnected()); Assert.Equal(true, syn.IsActive(Global.T)); cell.ActiveState[Global.T] = false; Assert.Equal(false, syn.IsActive(Global.T)); }