docstr: Evaluate performance of latest neural nerwork
  
  Args:
      current_weights (numpy.array): latest weights of neural network
      test_dataset (list): game number of self-play
  
  Returns:
      tuple of (number of perfect moves, number of good moves)
docstr_tok: ["Evaluate","performance","of","latest","neural","nerwork","Args",":","current_weights","(","numpy.array",")",":","latest","weights","of","neural","network","test_dataset","(","list",")",":","game","number","of","self-play","Returns",":","tuple","of","(","number","of","perfect","moves",",","number","of","good","moves",")"]
code: def evaluate_test_dataset(self, current_weights, test_dataset):
      """Evaluate performance of latest neural nerwork
  
      Args:
          current_weights (numpy.array): latest weights of neural network
          test_dataset (list): game number of self-play
  
      Returns:
          tuple of (number of perfect moves, number of good moves)
      """
      # update weights of current neural network with latest weights
      self.current_agent.set_weights(current_weights)
  
      perfect_move_count, good_move_count = 0, 0
      for data in test_dataset:
          self.current_mcts = MCTS(
              self.game, self.current_agent, self.args
          )
  
          x = self.game.getCanonicalForm(data["board"], data["player"])
          agent_move = int(
              np.argmax(self.current_mcts.getActionProb(x, temp=0))
          )
  
          moves = data["move_score"]
          perfect_score = max(moves)
          perfect_moves = [
              i for i in range(7) if moves[i] == perfect_score
          ]
  
          if agent_move in perfect_moves:
              perfect_move_count += 1
          if win_loss_draw(moves[agent_move]) == win_loss_draw(
              perfect_score
          ):
              good_move_count += 1
  
      return (perfect_move_count, good_move_count)
  
file_path: PARL/benchmark/torch/AlphaZero/actor.py
imports: import numpy
  import parl
  import os
  from alphazero_agent import create_agent
  from MCTS import MCTS
  from Arena import Arena
  from utils import win_loss_draw
label_desc: Use image node_id 4 for calling the Actor obj's underlying member method code with example usage: obj.evaluate_test_dataset(current_weights, test_dataset) and returns: perfect_move_count,  good_move_count