public void Case1Test() { 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, Right = 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.Case1(nd.Left, nd.Left.Sibling()); var expected = new RedBlackTree.Node() { Value = b, Color = RedBlackTree.Color.Black, Left = new RedBlackTree.Node() { Color = RedBlackTree.Color.Red, Value = a, Right = new RedBlackTree.Node() { Color = RedBlackTree.Color.Black, Value = c }, }, Right = new RedBlackTree.Node() { Color = RedBlackTree.Color.Black, Value = d } }; Assert.Equal(expected, tree._root, RedBlackTree.NodeEqualityComparer.Comparer); }