public static Box GetTranslated(this Box baseBox, BoxTranslation translation) { return(new Box { Left = baseBox.Left + translation.LeftOffset, Bottom = baseBox.Bottom + translation.BottomOffset, Width = baseBox.Width - translation.LeftOffset + translation.RightOffset, Height = baseBox.Height - translation.BottomOffset + translation.TopOffset }); }
public void GetTranslated_ShouldReturnCorrectTranslation() { var baseBox = new Box { Left = 0, Bottom = 0, Width = 100, Height = 100 }; var translation = new BoxTranslation { LeftOffset = 0, BottomOffset = 10, RightOffset = 20, TopOffset = -50 }; var actual = baseBox.GetTranslated(translation); actual.Left.ShouldBe(0); actual.Bottom.ShouldBe(10); actual.Right.ShouldBe(120); actual.Top.ShouldBe(50); actual.Width.ShouldBe(120); actual.Height.ShouldBe(40); }