Esempio n. 1
0
 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())
Esempio n. 2
0
 def test_set_value_non_mutating(self):
     expected = 4
     zipper = Zipper().insert(expected)
     zipper.set_value(8)
     actual = zipper.value
     self.assertEqual(actual, expected)
Esempio n. 3
0
 def test_set_value(self):
     expected = 2
     zipper = Zipper().insert(1).right.insert(3).up.left.insert(2)
     actual = zipper.set_value(zipper.value*expected).value//zipper.value
     self.assertEqual(actual, expected)
Esempio n. 4
0
 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)