code: def test_named_tuple_multi_access(self):
      t = GenericTuple(GenericTuple(0, 1), GenericTuple(2, 3))
      c = cursor(t)
      c.x.x = 4
      c[0].y = 5
      c.y.x = 6
      c.y[1] = 7
      self.assertEqual(
          c.build(),
          GenericTuple(GenericTuple(4, 5), GenericTuple(6, 7)),
      )
  
      c[0][1] = -5
      self.assertEqual(
          c.build(),
          GenericTuple(GenericTuple(4, -5), GenericTuple(6, 7)),
      )
      c.x[1] = -6
      self.assertEqual(
          c.build(),
          GenericTuple(GenericTuple(4, -6), GenericTuple(6, 7)),
      )
      c.x.y = -7
      self.assertEqual(
          c.build(),
          GenericTuple(GenericTuple(4, -7), GenericTuple(6, 7)),
      )
      c[0].y = -8
      self.assertEqual(
          c.build(),
          GenericTuple(GenericTuple(4, -8), GenericTuple(6, 7)),
      )
  
imports: import dataclasses
  from typing import Any, NamedTuple
  import jax
  import jax.numpy
  import optax
  from absl.testing import absltest
  import flax
  import flax.linen
  from flax.core import freeze
  from flax.cursor import AccessType, _traverse_tree, cursor
  from flax.errors import CursorFindError, TraverseTreeError
  from flax.training import train_state
label_desc: Use image node_id 10 for calling the CursorTest obj's underlying member method code with example usage: obj.test_named_tuple_multi_access() without return types