public void Case2Test()
        {
            var any = 0;
            var a   = any;
            var b   = any;
            var c   = any;
            var d   = any;
            var nd  = new RedBlackTree.Node()
            {
                Value = a,
                Color = RedBlackTree.Color.Black,
                Left  = new RedBlackTree.Node()
                {
                    Color = RedBlackTree.Color.Red,
                    Value = b,
                    Right = new RedBlackTree.Node()
                    {
                        Color = RedBlackTree.Color.Black,
                        Value = d
                    },
                    Left = new RedBlackTree.Node()
                    {
                        Color = RedBlackTree.Color.Black,
                        Value = c
                    }
                }
            };

            var tree = new RedBlackTree(nd);

            tree.Case2(nd.Right, nd.Right.Sibling());

            var expected = new RedBlackTree.Node()
            {
                Value = b,
                Color = RedBlackTree.Color.Black,
                Right = new RedBlackTree.Node()
                {
                    Color = RedBlackTree.Color.Red,
                    Value = a,
                    Left  = new RedBlackTree.Node()
                    {
                        Color = RedBlackTree.Color.Black,
                        Value = d
                    },
                },
                Left = new RedBlackTree.Node()
                {
                    Color = RedBlackTree.Color.Black,
                    Value = c
                }
            };

            Assert.Equal(expected, tree._root, RedBlackTree.NodeEqualityComparer.Comparer);
        }