code: def test_shape(self, batch_size, num_points, device, dtype):
      B, N = batch_size, num_points
      P1 = torch.rand(B, 3, 4, device=device, dtype=dtype)
      P2 = torch.rand(1, 3, 4, device=device, dtype=dtype)
      points1 = torch.rand(1, N, 2, device=device, dtype=dtype)
      points2 = torch.rand(B, N, 2, device=device, dtype=dtype)
      points3d = epi.triangulate_points(P1, P2, points1, points2)
      assert points3d.shape == (B, N, 3)
  
file_path: kornia/test/geometry/epipolar/test_triangulation.py
imports: from typing import Dict
  import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.geometry.epipolar
  from kornia.testing import assert_close
label_desc: Use image node_id 2 for calling the TestTriangulation obj's underlying member method code with example usage: obj.test_shape(batch_size, num_points, device, dtype) without return types