def test_immutability_change_whole_tree(self): z = Zipper().insert(1).right().insert(4).up().left().insert(2).left().insert(3).up().up() z_2 = Zipper().insert(1).right().insert(4).up().left().insert(2).left().insert(3).up().up() z.set_value(2).right().set_value(8).up().left().set_value(4).left().set_value(6).up().up() self.assertEqual(z.value(), z_2.value()) self.assertEqual(z.right().value(), z_2.right().value()) self.assertEqual(z.right().up().left().value(), z_2.right().up().left().value()) self.assertEqual(z.right().up().left().left().value(), z_2.right().up().left().left().value()) self.assertEqual(z.right().up().left().up().value(), z_2.right().up().left().up().value())
def test_immutability_set_value(self): z = Zipper().insert(1).right().insert(4).up().left().insert(2).left().insert(3) z_2 = z.set_value(5) self.assertEqual(z.value(), 3) self.assertEqual(z_2.value(), 5)