'``transform`` can perform operations on nested objects that have
invariant constraints, without triggering the InvariantException.'

def test_transform_deep_evolver(self):

    proxy = _TransformProxy(pmap({'a': pmap({'b': pmap({'c': DiffTestObjInvariant(a=1, b=2)})})}))
    proxy.transform(['a', 'b', 'c'], (lambda o: o.set('a', 2)))
    proxy.transform(['a', 'b', 'c'], (lambda o: o.set('b', 1)))
    self.assertEqual(pmap({'a': pmap({'b': pmap({'c': DiffTestObjInvariant(a=2, b=1)})})}), proxy.commit())
