private static List <AbsoluteBlock> ConvertToAbsoluteCoordinates(this RawShapeBlocksGroup elem) { var offsetX = 0; var absoluteBlockCollection = new Collection <AbsoluteBlock>(); RawShapeBlock previousRawShapeBlock = null; foreach (var block in elem.Collection) { if (previousRawShapeBlock != null) { offsetX += previousRawShapeBlock.Length; } offsetX += block.Offsetx; previousRawShapeBlock = block; var absoluteBlock = new AbsoluteBlock(offsetX, block.Length, elem.RowIndex); absoluteBlockCollection.Add(absoluteBlock); } return(absoluteBlockCollection.ToList()); }
public void MergeBlockHelperShouldWorkCorrectly() { var elem = new RawShapeBlocksGroup(new List <RawShapeBlock> { new RawShapeBlock(12, 100), new RawShapeBlock(0, 1), new RawShapeBlock(12, 50), new RawShapeBlock(0, 2), new RawShapeBlock(0, 3), new RawShapeBlock(1, 3) }, 0); var merged = elem.MergeBlocks(); merged.Collection.ShouldBeEquivalentTo(new Collection <RawShapeBlock> { new RawShapeBlock(12, 101), new RawShapeBlock(12, 55), new RawShapeBlock(1, 3) }); }