docstr: Check reward is higher for novel embed than those identical to memory.
docstr_tok: ["Check","reward","is","higher","for","novel","embed","than","those","identical","to","memory","."]
code: def test_novelty_reward(self):
      """Check reward is higher for novel embed than those identical to memory."""
  
      @self.variant
      def episodic_memory_intrinsic_rewards(embeddings, reward_scale):
          return exploration.episodic_memory_intrinsic_rewards(
              embeddings,
              self.num_neighbors,
              reward_scale,
              max_memory_size=10,
          )
  
      # Memory starts out as all zeros, if we try to add more zeros we should get
      # a lower reward than if we try to add 2 novel embeddings.
      identical_embeddings = np.array([[0.0, 0.0], [0.0, 0.0]])
      novel_embeddings = np.array([[1.3, 2.7], [-10.4, 16.01]])
      low_reward, state = episodic_memory_intrinsic_rewards(
          identical_embeddings, self.reward_scale
      )
      np.testing.assert_equal(np.array(state.distance_sum), 0)
      high_reward, _ = episodic_memory_intrinsic_rewards(
          novel_embeddings, self.reward_scale
      )
      np.testing.assert_array_less(low_reward, high_reward)
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  import chex
  import jax
  import numpy
  from rlax._src import exploration
label_desc: Use image node_id 2 for calling the EMIntrinsicRewardTest obj's underlying member method code with example usage: obj.test_novelty_reward() and returns: exploration