public void IsPassThroughBuffer_BothBufferInputAndOutputConnectedToModulePort_ReturnsTrue() { var buffer = new InstanceBuilder("some netlist", "some host").New("b1", "inst1") .Add("a", "w1").Add("b", "w2").Build(); var module = new Module("some netlist", "some host"); module.Ports.Add(new Port("w1")); module.Ports.Add(new Port("w2")); var result = _target.IsPassThroughBuffer(module, buffer, "a", "b"); Assert.That(result, Is.True); }
private void RemoveBuffers(Module module, string bufferName, string inputPort, string outputPort) { var bufferIdsToBuffersMap = _instanceRepository.GetByHostModule(module.Netlist, module.Name) .Where(i => i.ModuleName == bufferName) .ToDictionary(i => i.Id, i => i); foreach (var bufferId in bufferIdsToBuffersMap.Keys.ToList()) { var buffer = bufferIdsToBuffersMap[bufferId]; if (_bufferWiringVerifier.IsPassThroughBuffer(module, buffer, inputPort, outputPort)) { continue; } _instanceRepository.Remove(buffer); var buffersToUpdate = ReplaceWires(module, inputPort, outputPort, buffer); foreach (var bufferToUpdate in buffersToUpdate) { bufferIdsToBuffersMap[bufferToUpdate.Id] = bufferToUpdate; } } }