code: def test_accuracy_computation(self, device: str):
      accuracy = BooleanAccuracy()
      predictions = torch.tensor(
          [[0, 1], [2, 3], [4, 5], [6, 7]], device=device
      )
      targets = torch.tensor(
          [[0, 1], [2, 2], [4, 5], [7, 7]], device=device
      )
      accuracy(predictions, targets)
      assert accuracy.get_metric() == 2 / 4
  
      mask = torch.ones(4, 2, device=device).bool()
      mask[1, 1] = 0
      accuracy(predictions, targets, mask)
      assert accuracy.get_metric() == 5 / 8
  
      targets[1, 1] = 3
      accuracy(predictions, targets)
      assert accuracy.get_metric() == 8 / 12
  
      accuracy.reset()
      accuracy(predictions, targets)
      assert accuracy.get_metric() == 3 / 4
  
file_path: allennlp/tests/training/metrics/boolean_accuracy_test.py
imports: from typing import Any, Dict, List, Tuple, Union
  import torch
  import pytest
  from allennlp.common.testing import AllenNlpTestCase, multi_device, global_distributed_metric, run_distributed_test
  from allennlp.training.metrics import BooleanAccuracy
label_desc: Use image node_id 1 for calling the BooleanAccuracyTest obj's underlying member method code with example usage: obj.test_accuracy_computation(device) without return types