def METHOD_NAME(self, test_data, device, args):
    # test data
    test_num_samples = []
    test_tot_corrects = []
    test_losses = []
    perplexity_losses = []
    metrics = self._test(test_data, device, args)
    test_tot_correct, test_num_sample, test_loss, perplexity_loss = (
        metrics["test_correct"],
        metrics["test_total"],
        metrics["test_loss"],
        metrics["perplexity_loss"],
    )
    test_tot_corrects.append(copy.deepcopy(test_tot_correct))
    test_num_samples.append(copy.deepcopy(test_num_sample))
    test_losses.append(copy.deepcopy(test_loss))
    perplexity_losses.append(copy.deepcopy(perplexity_loss))
    # test on test dataset
    test_acc = sum(test_tot_corrects) / sum(test_num_samples)
    test_loss = sum(test_losses) / sum(test_num_samples)
    perplexity_loss = sum(perplexity_losses) / sum(test_num_samples)
    if self.args.enable_wandb:
        wandb.log({"Test/Acc": test_acc, "round": args.round_idx})
        wandb.log({"Test/Loss": test_loss, "round": args.round_idx})
        wandb.log({"Test/Perplexity_Loss": perplexity_loss, "round": args.round_idx})
    mlops.log({"Test/Acc": test_acc, "round": args.round_idx})
    mlops.log({"Test/Loss": test_loss, "round": args.round_idx})
    mlops.log({"Test/Perplexity_Loss": perplexity_loss, "round": args.round_idx})
    stats = {"test_acc": test_acc, "test_loss": test_loss, "Test/Perplexity_Loss": perplexity_loss}
    logging.info(stats)