class_docstr: Specific tests on SimCLR going further than just doing a forward pass
code: def test_simclr_info_nce_masks(self) -> None:
      BATCH_SIZE = 4
      WORLD_SIZE = 2
      buffer_params = BUFFER_PARAMS_STRUCT(
          BATCH_SIZE * WORLD_SIZE, WORLD_SIZE, EMBEDDING_DIM
      )
      criterion = SimclrInfoNCECriterion(
          buffer_params=buffer_params, temperature=0.1
      )
      self.assertTrue(
          criterion.pos_mask.equal(
              torch.tensor(
                  [
                      [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0],
                      [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
                      [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
                      [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
                  ]
              )
          )
      )
      self.assertTrue(
          criterion.neg_mask.equal(
              torch.tensor(
                  [
                      [0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0],
                      [1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0],
                      [0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0],
                      [1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0],
                  ]
              )
          )
      )
  
imports: import logging
  import unittest
  from collections import namedtuple
  import torch
  import torch.nn
  import torch.optim
  from classy_vision.generic.distributed_util import set_cpu_device
  from parameterized import param, parameterized
  from vissl.config.attr_dict import AttrDict
  from vissl.losses.barlow_twins_loss import BarlowTwinsCriterion
  from vissl.losses.cross_entropy_multiple_output_single_target import CrossEntropyMultipleOutputSingleTargetCriterion, CrossEntropyMultipleOutputSingleTargetLoss
  from vissl.losses.distillation_loss import DistillationCriterion, DistillationLoss
  from vissl.losses.multicrop_simclr_info_nce_loss import MultiCropSimclrInfoNCECriterion
  from vissl.losses.simclr_info_nce_loss import SimclrInfoNCECriterion
  from vissl.losses.swav_loss import SwAVCriterion
label_desc: Use image node_id 1 for calling the TestSimClrCriterion obj's underlying member method code with example usage: obj.test_simclr_info_nce_masks() without return types