// Parameter: list of space separated Z, X values PackLine Construct(string packLineData) { var values = packLineData.Split(' ').Select(x => int.Parse(x.Trim())).ToList(); var packLine = new PackLine(1); packLine.FirstSegment = null; PackLine.Segment lastSegment = null; for (int i = 0; i < values.Count; i += 2) { var segment = new PackLine.Segment() { Z = values[i], RightX = values[i + 1] }; if (packLine.FirstSegment == null) { packLine.FirstSegment = segment; } else { lastSegment.Right = segment; segment.Left = lastSegment; } lastSegment = segment; } return(packLine); }
public void Constructor() { var pl = new PackLine(100); Assert.NotNull(pl.FirstSegment); Assert.Equal(0, pl.FirstSegment.Z); Assert.Equal(100, pl.FirstSegment.RightX); }
int SegmentCount(PackLine line) { var count = 0; var segment = line.FirstSegment; while (segment != null) { count++; segment = segment.Right; } return(count); }