class_docstr: Test the PipelineHelper class.
class_docstr_tok: ["Test","the","PipelineHelper","class","."]
code: def test_join_complex(self):
      d = {"x": torch.randn(8, 5), "y": torch.randn(8, 2)}
      t = torch.Tensor(8, 3)
      tup = (t, d)
      chunks = [tup, tup]
      j = PipelineHelper.join(chunks)
      assert isinstance(j, tuple)
      assert len(j) == 2
      left, right = j
      assert isinstance(left, torch.Tensor)
      assert left.shape == (16, 3)
      assert isinstance(right, dict)
      assert len(right) == 2
      assert "x" in right
      assert "y" in right
      assert right["x"].shape == (16, 5)
      assert right["y"].shape == (16, 2)
  
imports: import torch
  import numpy
  import unittest
  from parlai.utils.torch import padded_tensor, argsort, PipelineHelper, neginf, IdentityLayer, trainable_parameters, total_parameters
label_desc: Use image node_id 11 for calling the TestPipelineHelper obj's underlying member method code with example usage: obj.test_join_complex() without return types