def test_Vec3_subtraction_operator(): components1 = np.random.rand(3) components2 = np.random.rand(3) vec3_1py = vectormath.Vector3(*components1) vec3_2py = vectormath.Vector3(*components2) vec3_1cpp = NumCpp.Vec3(*components1) vec3_2cpp = NumCpp.Vec3(*components2) assert np.array_equal( np.round(vec3_1py - vec3_2py, DECIMALS_TO_ROUND), np.round((NumCpp.Vec3_minusVec3(vec3_1cpp, vec3_2cpp)).toNdArray().flatten(), DECIMALS_TO_ROUND)) components = np.random.rand(3) scaler = np.random.rand(1).item() vec3py = vectormath.Vector3(*components) vec3cpp = NumCpp.Vec3(*components) assert np.array_equal( np.round(vec3py - scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec3_minusVec3Scaler(vec3cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND)) components = np.random.rand(3) scaler = np.random.rand(1).item() vec3py = vectormath.Vector3(*components) vec3cpp = NumCpp.Vec3(*components) assert np.array_equal( np.round(-vec3py + scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec3_minusScalerVec3(vec3cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec3_cross(): components1 = np.random.rand(3) components2 = np.random.rand(3) vec3_1py = vectormath.Vector3(*components1) vec3_2py = vectormath.Vector3(*components2) vec3_1cpp = NumCpp.Vec3(*components1) vec3_2cpp = NumCpp.Vec3(*components2) assert np.array_equal(np.round(vec3_1py.cross(vec3_2py), DECIMALS_TO_ROUND), np.round(vec3_1cpp.cross(vec3_2cpp).toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec3_dot(): components1 = np.random.rand(3) components2 = np.random.rand(3) vec3_1py = vectormath.Vector3(*components1) vec3_2py = vectormath.Vector3(*components2) vec3_1cpp = NumCpp.Vec3(*components1) vec3_2cpp = NumCpp.Vec3(*components2) assert (round(vec3_1py.dot(vec3_2py), DECIMALS_TO_ROUND) == round(vec3_1cpp.dot(vec3_2cpp), DECIMALS_TO_ROUND))
def test_Vec3_distance(): components1 = np.random.rand(3) components2 = np.random.rand(3) vec3_1py = vectormath.Vector3(*components1) vec3_2py = vectormath.Vector3(*components2) vec3_1cpp = NumCpp.Vec3(*components1) vec3_2cpp = NumCpp.Vec3(*components2) assert (round((vec3_2py - vec3_1py).length, DECIMALS_TO_ROUND) == round(vec3_1cpp.distance(vec3_2cpp), DECIMALS_TO_ROUND))
def test_Vec3_normalize(): components = np.random.rand(3) vec3py = vectormath.Vector3(*components) vec3cpp = NumCpp.Vec3(*components) assert np.array_equal( np.round(vec3py.normalize(), DECIMALS_TO_ROUND), np.round(vec3cpp.normalize().toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec3_norm(): components = np.random.rand(3) vec3py = vectormath.Vector3(*components) vec3cpp = NumCpp.Vec3(*components) assert (round(vec3py.length, DECIMALS_TO_ROUND) == round(vec3cpp.norm(), DECIMALS_TO_ROUND))
def test_Vec3_multiplication_operator(): components = np.random.rand(3) scaler = np.random.rand(1).item() vec3py = vectormath.Vector3(*components) vec3cpp = NumCpp.Vec3(*components) assert np.array_equal(np.round(vec3py * scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec3_multVec3Scaler(vec3cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND)) components = np.random.rand(3) scaler = np.random.rand(1).item() vec3py = vectormath.Vector3(*components) vec3cpp = NumCpp.Vec3(*components) assert np.array_equal(np.round(vec3py * scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec3_multScalerVec3(vec3cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec3_clampedVec(): components = np.random.rand(3) + 10 clampMag = np.random.randint(1, 10, [1, ]).item() vec3 = NumCpp.Vec3(*components) clampedVec = vec3.clampMagnitude(float(clampMag)) assert np.round(clampedVec.norm(), DECIMALS_TO_ROUND) == clampMag assert np.round(vec3.dot(clampedVec) / vec3.norm() / clampedVec.norm(), DECIMALS_TO_ROUND) == 1
def test_Vec3_division_assignment_operator(): components1 = np.random.rand(3) scaler = np.random.rand(1).item() vec3_1py = vectormath.Vector3(*components1) vec3_1cpp = NumCpp.Vec3(*components1) vec3_1cpp /= scaler assert np.array_equal(np.round(vec3_1py / scaler, DECIMALS_TO_ROUND), np.round(vec3_1cpp.toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec3_array_constructor(): components = np.random.rand(3) shape = NumCpp.Shape(1, 3) cArray = NumCpp.NdArray(shape) cArray.setArray(components) vec3 = NumCpp.Vec3(cArray) assert vec3.x == components[0].item() assert vec3.y == components[1].item() assert vec3.z == components[2].item()
def test_Vec3_subtraction_assignment_operator(): components1 = np.random.rand(3) components2 = np.random.rand(3) vec3_1py = vectormath.Vector3(*components1) vec3_2py = vectormath.Vector3(*components2) vec3_1cpp = NumCpp.Vec3(*components1) vec3_2cpp = NumCpp.Vec3(*components2) vec3_1cpp -= vec3_2cpp assert np.array_equal(np.round(vec3_1py - vec3_2py, DECIMALS_TO_ROUND), np.round(vec3_1cpp.toNdArray().flatten(), DECIMALS_TO_ROUND)) components1 = np.random.rand(3) scaler = np.random.rand(1).item() vec3_1py = vectormath.Vector3(*components1) vec3_1cpp = NumCpp.Vec3(*components1) vec3_1cpp -= scaler assert np.array_equal(np.round(vec3_1py - scaler, DECIMALS_TO_ROUND), np.round(vec3_1cpp.toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec3_print(): components = np.random.rand(3) vec3cpp = NumCpp.Vec3(*components) NumCpp.Vec3_print(vec3cpp)
def test_Vec3_equality_operator(): components = np.random.rand(3) vec3_1cpp = NumCpp.Vec3(*components) vec3_2cpp = NumCpp.Vec3(*components) assert vec3_1cpp == vec3_2cpp assert not (vec3_1cpp != vec3_2cpp)
def test_Vec3_component_constructor(): components = np.random.rand(3) vec2 = NumCpp.Vec3(*components) assert vec2.x == components[0].item() assert vec2.y == components[1].item() assert vec2.z == components[2].item()
def test_Vec3_default_constructor(): assert NumCpp.Vec3()