public void Replace(LibraryGateReplaceRequest replaceRequest) { _netlistDataBuilder.Build(replaceRequest.SourceNetlist); _netlistCloner.Clone(replaceRequest.SourceNetlist, replaceRequest.TargetNetlist); _libraryGateReplacer.Replace(replaceRequest.TargetNetlist, replaceRequest.GateToReplace, replaceRequest.NewGate, replaceRequest.PortsMapping); var content = _netlistFileContentDirector.Construct(replaceRequest.TargetNetlist); _fileWriter.Write(replaceRequest.TargetNetlist, "Replace Library Gate", content); }
public void Replace_LibraryGateWithoutMapping_ReplaceLibraryGate() { // oai22 inst056453 ( .b2(n37), .b1(i3), .a2(n36), .a1(i1), .zn(o) ); const string moduleToReplace = "oai22"; const string newModule = "oai22new"; _target.Replace(DummyNetlist, moduleToReplace, newModule, new PortsMapping()); var result = _instanceRepository.GetByModuleName(DummyNetlist, moduleToReplace).ToList(); Assert.That(result, Is.Empty); result = _instanceRepository.GetByModuleName(DummyNetlist, newModule).ToList(); Assert.That(result, Has.Count.EqualTo(1)); Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "b2" & pwp.Wire == "n37")); Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "b1" & pwp.Wire == "i3")); Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "a2" & pwp.Wire == "n36")); Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "a1" & pwp.Wire == "i1")); Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "zn" & pwp.Wire == "o")); }