public IEnumerable <RdbNet> Read(string filePath) { var file = _fileReader.ReadAll(filePath); var rdbNets = new List <RdbNet>(); var current = new RdbNet(); var currentPins = new List <Pin>(); var index = 0; while (index < file.Length) { var line = file[index]; if (line.StartsWith(RdbFileLines.Net)) { current.pins = currentPins; if (current.name != null) { rdbNets.Add(current); } currentPins = new List <Pin>(); current = new RdbNet { name = line.Substring(RdbFileLines.Net.Length + 1) }; } if (line.StartsWith(RdbFileLines.Prop)) { var prop = new Prop { type = line.Substring(RdbFileLines.Prop.Length + 1) }; current.prop = prop; } if (line.StartsWith(RdbFileLines.Pin)) { var pinLine = line.Substring(RdbFileLines.Pin.Length + 1) .Split(' '); var pin = new Pin { name = pinLine[0], x = Convert.ToSingle(pinLine[1]), y = Convert.ToSingle(pinLine[2]) }; currentPins.Add(pin); } index++; } current.pins = currentPins; if (current.name != null) { rdbNets.Add(current); } return(rdbNets); }
private IEnumerable <RdbNet> CreateTestData(int length) { var data = new List <RdbNet>(); while (length > 0) { var current = new RdbNet { name = AutoFixture.Create <string>(), pins = AutoFixture.CreateMany <Pin>(), prop = AutoFixture.Create <Prop>() }; data.Add(current); length--; } return(data); }