def test_back_and_forth(self, device): quaternion_log = torch.tensor([0., 0., 0.]).to(device) quaternion_exp = kornia.quaternion_log_to_exp(quaternion_log) quaternion_log_hat = kornia.quaternion_exp_to_log(quaternion_exp) assert_allclose(quaternion_log, quaternion_log_hat)
def test_pi_quaternion(self, device): one = torch.tensor(1.).to(device) quaternion_log = torch.tensor([1., 0., 0.]).to(device) expected = torch.tensor([torch.sin(one), 0., 0., torch.cos(one)]).to(device) assert_allclose(kornia.quaternion_log_to_exp(quaternion_log), expected)
def test_smoke_batch(self, device, batch_size): quaternion_log = torch.zeros(batch_size, 3).to(device) quaternion_exp = kornia.quaternion_log_to_exp(quaternion_log) assert quaternion_exp.shape == (batch_size, 4)
def test_unit_quaternion(self, device): quaternion_log = torch.tensor([0., 0., 0.]).to(device) expected = torch.tensor([0., 0., 0., 1.]).to(device) assert_allclose(kornia.quaternion_log_to_exp(quaternion_log), expected)
def test_back_and_forth(self): quaternion_exp = torch.tensor([1., 0., 0., 0.]) quaternion_log = kornia.quaternion_exp_to_log(quaternion_exp) quaternion_exp_hat = kornia.quaternion_log_to_exp(quaternion_log) assert_allclose(quaternion_exp, quaternion_exp_hat)