public void TitleCentersProperlyAfterUpdate()
        {
            Chart      chart          = new Chart();
            LinearAxis horizontalAxis = new LinearAxis {
                Orientation = AxisOrientation.X, Title = "Filler Text"
            };

            chart.Axes.Add(horizontalAxis);
            LinearAxis verticalAxis = new LinearAxis {
                Orientation = AxisOrientation.Y, Title = "Sample Title"
            };

            chart.Axes.Add(verticalAxis);
            Title horizontalTitle = null;
            Title verticalTitle   = null;

            TestAsync(
                chart,
                () =>
            {
                horizontalTitle = horizontalAxis.GetVisualDescendents().OfType <Title>().First();
                verticalTitle   = verticalAxis.GetVisualDescendents().OfType <Title>().First();
            },
                () =>
            {
                Point xLeftTop = horizontalTitle.TransformToVisual(horizontalAxis).Transform(new Point());
                Assert.AreEqual(Math.Round(xLeftTop.X), Math.Round((horizontalAxis.ActualWidth - horizontalTitle.ActualWidth) / 2));
                Point yLeftTop = verticalTitle.TransformToVisual(verticalAxis).Transform(new Point());
                Assert.AreEqual(Math.Round(yLeftTop.Y), Math.Round((verticalAxis.ActualHeight + verticalTitle.ActualWidth) / 2));
            },
                () =>
            {
                horizontalAxis.Title = "Much longer filler text";
                verticalAxis.Title   = new Rectangle {
                    Width = 100, Height = 10
                };
            },
                () =>
            {
                Point xLeftTop = horizontalTitle.TransformToVisual(horizontalAxis).Transform(new Point());
                Assert.AreEqual(Math.Round(xLeftTop.X), Math.Round((horizontalAxis.ActualWidth - horizontalTitle.ActualWidth) / 2));
                Point yLeftTop = verticalTitle.TransformToVisual(verticalAxis).Transform(new Point());
                Assert.AreEqual(Math.Round(yLeftTop.Y), Math.Round((verticalAxis.ActualHeight + verticalTitle.ActualWidth) / 2));
            });
        }