code: def test_push_policy_maintains_old_policy(self):
      old_policy = jmp.get_policy("o=f16")
      new_policy = jmp.get_policy("o=f64")
      self.assertIsNone(mixed_precision.get_policy(InnerModule))
      mixed_precision.set_policy(InnerModule, old_policy)
      with mixed_precision.push_policy(InnerModule, new_policy):
          self.assertEqual(
              mixed_precision.get_policy(InnerModule), new_policy
          )
      self.assertEqual(
          mixed_precision.get_policy(InnerModule), old_policy
      )
      mixed_precision.clear_policy(InnerModule)
  
imports: import importlib
  from typing import Optional
  from absl.testing import absltest
  from haiku._src import base
  from haiku._src import conv
  from haiku._src import mixed_precision
  from haiku._src import module
  from haiku._src import test_utils
  from haiku._src import transform
  import jax
  import jax.numpy
  import jmp
label_desc: Use image node_id 10 for calling the MixedPrecisionTest obj's underlying member method code with example usage: obj.test_push_policy_maintains_old_policy() without return types