def METHOD_NAME(self):
    output = np.zeros((2, 5, 3))
    target = np.zeros((2, 5, 3))
    mask = np.array([[True, True, False, True, True],
                     [True, True, False, True, True]])
    # first channel
    output[0, 0] = [1, 0, 0]
    target[0, 0] = [1, 0, 0]
    output[1, 0] = [1, 0, 0]
    target[1, 0] = [1, 1, 0]
    # second channel
    output[0, 1] = [2, 2, 0]
    target[0, 1] = [1, 1, 1]
    output[1, 1] = [2, 2, 1]
    target[1, 1] = [1, 0, 1]
    # third channel
    output[0, 2] = [0, 0, -1]
    target[0, 2] = [-1, 0, 0]
    output[1, 2] = [-1, 0, 0]
    target[1, 2] = [-1, 0, 0]
    # fourth channel
    output[0, 3] = [3, 3, 1]
    target[0, 3] = [3, 3, 1]
    output[1, 3] = [0, 0, 3]
    target[1, 3] = [0, 0, 3]
    # fifth channel
    output[0, 4] = [0, 1, 1]
    target[0, 4] = [0, 1, 0]
    output[1, 4] = [0, 0, 1]
    target[1, 4] = [1, 1, 0]
    mpjpe = keypoint_mpjpe(output, target, mask)
    self.assertAlmostEqual(mpjpe, 0.9625211990796929, delta=1e-4)
    p_mpjpe = keypoint_mpjpe(output, target, mask, 'procrustes')
    self.assertAlmostEqual(p_mpjpe, 1.0047897634604497, delta=1e-4)
    s_mpjpe = keypoint_mpjpe(output, target, mask, 'scale')
    self.assertAlmostEqual(s_mpjpe, 1.0277129678465953, delta=1e-4)
    with self.assertRaises(ValueError):
        _ = keypoint_mpjpe(output, target, mask, 'alignment')