MCPcopy Index your code
hub / github.com/matplotlib/matplotlib / test_quaternion

Function test_quaternion

lib/mpl_toolkits/mplot3d/tests/test_axes3d.py:1903–1994  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1901
1902
1903def test_quaternion():
1904 # 1:
1905 q1 = Quaternion(1, [0, 0, 0])
1906 assert q1.scalar == 1
1907 assert (q1.vector == [0, 0, 0]).all
1908 # __neg__:
1909 assert (-q1).scalar == -1
1910 assert ((-q1).vector == [0, 0, 0]).all
1911 # i, j, k:
1912 qi = Quaternion(0, [1, 0, 0])
1913 assert qi.scalar == 0
1914 assert (qi.vector == [1, 0, 0]).all
1915 qj = Quaternion(0, [0, 1, 0])
1916 assert qj.scalar == 0
1917 assert (qj.vector == [0, 1, 0]).all
1918 qk = Quaternion(0, [0, 0, 1])
1919 assert qk.scalar == 0
1920 assert (qk.vector == [0, 0, 1]).all
1921 # i^2 = j^2 = k^2 = -1:
1922 assert qi*qi == -q1
1923 assert qj*qj == -q1
1924 assert qk*qk == -q1
1925 # identity:
1926 assert q1*qi == qi
1927 assert q1*qj == qj
1928 assert q1*qk == qk
1929 # i*j=k, j*k=i, k*i=j:
1930 assert qi*qj == qk
1931 assert qj*qk == qi
1932 assert qk*qi == qj
1933 assert qj*qi == -qk
1934 assert qk*qj == -qi
1935 assert qi*qk == -qj
1936 # __mul__:
1937 assert (Quaternion(2, [3, 4, 5]) * Quaternion(6, [7, 8, 9])
1938 == Quaternion(-86, [28, 48, 44]))
1939 # conjugate():
1940 for q in [q1, qi, qj, qk]:
1941 assert q.conjugate().scalar == q.scalar
1942 assert (q.conjugate().vector == -q.vector).all
1943 assert q.conjugate().conjugate() == q
1944 assert ((q*q.conjugate()).vector == 0).all
1945 # norm:
1946 q0 = Quaternion(0, [0, 0, 0])
1947 assert q0.norm == 0
1948 assert q1.norm == 1
1949 assert qi.norm == 1
1950 assert qj.norm == 1
1951 assert qk.norm == 1
1952 for q in [q0, q1, qi, qj, qk]:
1953 assert q.norm == (q*q.conjugate()).scalar
1954 # normalize():
1955 for q in [
1956 Quaternion(2, [0, 0, 0]),
1957 Quaternion(0, [3, 0, 0]),
1958 Quaternion(0, [0, 4, 0]),
1959 Quaternion(0, [0, 0, 5]),
1960 Quaternion(6, [7, 8, 9])

Callers

nothing calls this directly

Calls 10

conjugateMethod · 0.80
normalizeMethod · 0.80
reciprocalMethod · 0.80
sqrtMethod · 0.80
rotate_from_toMethod · 0.80
iscloseMethod · 0.80
dotMethod · 0.80
from_cardan_anglesMethod · 0.80
as_cardan_anglesMethod · 0.80
rotateMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…