public void SplitShouldReturnNodei00iWhenLeftAndRightNodes() { // split(((0,1),(1,0))) = (((0,1),0),((0,(1,0))) Id id = new Id.Node(new Id.Node(0, 1), new Id.Node(1, 0)); id.Split().Should().Be( new Id.Node( new Id.Node(new Id.Node(0, 1), 0), new Id.Node(0, new Id.Node(1, 0)) ) ); }
public void SplitShouldReturnNode0i0iWhenLeftLeaf0() { // split((0,1)) = ((0,(1,0)),(0,(0,1))) Id id1 = new Id.Node(0, 1); id1.Split().Should().Be( new Id.Node( new Id.Node(0, new Id.Node(1, 0)), new Id.Node(0, new Id.Node(0, 1)) ) ); // split((0,(0,1))) = ((0,(0,(1,0))),(0,(0,(0,1)))) Id id2 = new Id.Node(0, new Id.Node(0, 1)); id2.Split().Should().Be( new Id.Node( new Id.Node(0, new Id.Node(0, new Id.Node(1, 0))), new Id.Node(0, new Id.Node(0, new Id.Node(0, 1))) )); }
public void SplitShouldReturnNodei0i0WhenRightLeaf0() { // split((1,0)) = (((1,0),0),((0,1),0)) Id id1 = new Id.Node(1, 0); id1.Split().Should().Be( new Id.Node( new Id.Node(new Id.Node(1, 0), 0), new Id.Node(new Id.Node(0, 1), 0) ) ); // split(((1,0),0)) = ((((1,0),0),0),(((0,1),0),0)) Id id2 = new Id.Node(new Id.Node(1, 0), 0); id2.Split().Should().Be( new Id.Node( new Id.Node(new Id.Node(new Id.Node(1, 0), 0), 0), new Id.Node(new Id.Node(new Id.Node(0, 1), 0), 0) ) ); }