code: def test_through_three(self, device, dtype, shape):
      v0 = Vector3.random(shape, device, dtype)
      v1 = Vector3.random(shape, device, dtype)
      v2 = Vector3.random(shape, device, dtype)
      # TODO: improve api so that we can accept Vector too
      p0 = Hyperplane.through(v0, v1, v2)
      assert p0.normal.shape == shape or (3,)
      assert p0.offset.shape == ((*shape,) if shape is not None else ())
  
imports: import pytest
  import torch
  from kornia.geometry.plane import Hyperplane, fit_plane
  from kornia.geometry.vector import Vector3
  from kornia.testing import BaseTester
label_desc: Use image node_id 3 for calling the TestHyperplane obj's underlying member method code with example usage: obj.test_through_three(device, dtype, shape) without return types