/***************************************************************************/ public void addConnection(ILogicalElement _element, int _pin) { if (m_sourceElement != null && _element == m_sourceElement.Item1) { throw new ArgumentException( Resoursers.Exceptions.Messages.combinationalFeedback); } if (hasConnection(_element, _pin)) { throw new ArgumentException( string.Format(Resoursers.Exceptions.Messages.duplicateConnection, _element.ID)); } if (hasConnection(_element)) { m_elements2Pins[_element].Add(_pin); } else { PinsSet pinsSet = new PinsSet(); pinsSet.Add(_pin); m_elements2Pins.Add(_element, pinsSet); } }
public void addElement() { ILogicalElement sourceElement = new Fakes.FakeElement(); ILine line = new Line(sourceElement, 0); Fakes.FakeElement element = new Fakes.FakeElement(); line.addConnection(element, 0); line.addConnection(element, 1); Assert.AreEqual(line.ElementsConnected, 1); PinsSet set = line.getConnections(element); Assert.AreEqual(set.Count, 2); Assert.IsTrue(set.Contains(0)); Assert.IsTrue(set.Contains(1)); }
/***************************************************************************/ public void removeConnection(ILogicalElement _element, int _pin) { if (!hasConnection(_element)) { throw new ArgumentException( string.Format(Resoursers.Exceptions.Messages.noElementConnection, _element.ID)); } PinsSet set = m_elements2Pins[_element]; if (!set.Contains(_pin)) { throw new ArgumentException( string.Format(Resoursers.Exceptions.Messages.noPinConnection, _pin, _element.ID)); } set.Remove(_pin); if (set.Count == 0) { m_elements2Pins.Remove(_element); } }