예제 #1
0
def test_orthogonality():
    x = v3.vector(v3.random_mag(), 0, 0)
    y = v3.vector(0, v3.random_mag(), 0)
    z = v3.vector(0, 0, v3.random_mag())
    ry_x = v3.transform(v3.rotation(y, v3.radians(90)), x)
    assert v3.is_similar_vector(v3.norm(ry_x), -v3.norm(z))
    assert v3.is_similar_mag(v3.mag(ry_x), v3.mag(x))
    ry_z = v3.transform(v3.rotation(y, v3.radians(90)), z)
    assert v3.is_similar_vector(v3.norm(ry_z), v3.norm(x))
    cross_x_y = v3.cross(x, y)
    assert v3.is_similar_vector(v3.norm(cross_x_y), v3.norm(z))
    assert v3.is_similar_mag(0, v3.dot(cross_x_y, x))
    assert v3.is_similar_mag(0, v3.dot(cross_x_y, y))
    cross_y_x = v3.cross(y, x)
    assert v3.is_similar_vector(v3.norm(cross_y_x), -v3.norm(z))
예제 #2
0
def test_orthogonality():
  x = v3.vector(v3.random_mag(), 0, 0)
  y = v3.vector(0, v3.random_mag(), 0)
  z = v3.vector(0, 0, v3.random_mag())
  ry_x = v3.transform(v3.rotation(y, v3.radians(90)), x)
  assert v3.is_similar_vector(v3.norm(ry_x), -v3.norm(z))
  assert v3.is_similar_mag(v3.mag(ry_x), v3.mag(x))
  ry_z = v3.transform(v3.rotation(y, v3.radians(90)), z)
  assert v3.is_similar_vector(v3.norm(ry_z), v3.norm(x))
  cross_x_y = v3.cross(x, y)
  assert v3.is_similar_vector(v3.norm(cross_x_y), v3.norm(z))
  assert v3.is_similar_mag(0, v3.dot(cross_x_y, x))
  assert v3.is_similar_mag(0, v3.dot(cross_x_y, y))
  cross_y_x = v3.cross(y, x)
  assert v3.is_similar_vector(v3.norm(cross_y_x), -v3.norm(z))
예제 #3
0
def test_vector_algebra():
    a = v3.random_vector()
    assert v3.is_similar_vector(a, +a)
    b = v3.random_vector()
    a_add_b = a + b
    assert v3.is_similar_vector(a_add_b - b, a)
    a_sub_b = a - b
    assert v3.is_similar_vector(a_sub_b + b, a)
    s = v3.random_mag()
    v = v3.random_vector()
    assert v3.is_similar_mag(v3.mag(v3.scale(v, s)), s * v3.mag(v))
    assert v3.is_similar_mag(v3.mag(v * s), s * v3.mag(v))
    assert v3.is_similar_mag(v3.mag(s * v), s * v3.mag(v))
    s = v3.random_mag()
    v = v3.random_vector()
    assert v3.is_similar_vector(v3.scale(v, -s), -v3.scale(v, s))
    assert v3.is_similar_vector(v * -s, -(v * s))
    assert v3.is_similar_vector(-s * v, -(s * v))
예제 #4
0
def test_vector_algebra():
  a = v3.random_vector()
  assert v3.is_similar_vector(a, +a)
  b = v3.random_vector()
  a_add_b = a+b
  assert v3.is_similar_vector(a_add_b - b, a)
  a_sub_b = a-b
  assert v3.is_similar_vector(a_sub_b + b, a)
  s = v3.random_mag()
  v = v3.random_vector()
  assert v3.is_similar_mag(v3.mag(v3.scale(v, s)), s*v3.mag(v))
  assert v3.is_similar_mag(v3.mag(v*s), s*v3.mag(v))
  assert v3.is_similar_mag(v3.mag(s*v), s*v3.mag(v))
  s = v3.random_mag()
  v = v3.random_vector()
  assert v3.is_similar_vector(v3.scale(v, -s), -v3.scale(v, s))
  assert v3.is_similar_vector(v*-s, -(v*s))
  assert v3.is_similar_vector(-s*v, -(s*v))
예제 #5
0
def test_translation():
    x = v3.vector(v3.random_mag(), 0, 0)
    y = v3.vector(0, v3.random_mag(), 0)
    x_and_y = v3.transform(v3.translation(y), x)
    assert v3.is_similar_vector(x_and_y, x + y)
예제 #6
0
def test_translation():
  x = v3.vector(v3.random_mag(), 0, 0)
  y = v3.vector(0, v3.random_mag(), 0)
  x_and_y = v3.transform(v3.translation(y), x)
  assert v3.is_similar_vector(x_and_y, x+y)