def test_splice_illegal(): # Try to splice onto a descendant of the source node. strain = Strain( ( ( (), ), ) ) assert_raises( IndexError, lambda: strain.splice([0], [0, 0]) ) # Try to create a node with too many children. strain = Strain( ( (), ( (), ), ) ) assert_raises( ValueError, lambda: strain.splice([1, 0], [0]) )
def test_splice(): strain = Strain( ( ( (), ), )) strain.splice([0, 0], [1]) assert_equal( strain.as_tuple(), ( (), (), ) ) strain = Strain( ( (), (), ) ) strain.splice([0], [0, 0]) assert_equal( strain.as_tuple(), ( ( (), ), ) ) strain = Strain( ( (), ( (), (), ), ) ) strain.splice([1], [0, 0]) assert_equal( strain.as_tuple(), ( ( ( (), (), ), ), ) ) strain = Strain( ( ( (), ), (), ) ) strain.splice([0], [1]) assert_equal( strain.as_tuple(), ( (), ( (), ), ) )