def test_Vec2_subtraction_operator(): components1 = np.random.rand(2) components2 = np.random.rand(2) vec2_1py = vectormath.Vector2(*components1) vec2_2py = vectormath.Vector2(*components2) vec2_1cpp = NumCpp.Vec2(*components1) vec2_2cpp = NumCpp.Vec2(*components2) assert np.array_equal( np.round(vec2_1py - vec2_2py, DECIMALS_TO_ROUND), np.round((NumCpp.Vec2_minusVec2(vec2_1cpp, vec2_2cpp)).toNdArray().flatten(), DECIMALS_TO_ROUND)) components = np.random.rand(2) scaler = np.random.rand(1).item() vec2py = vectormath.Vector2(*components) vec2cpp = NumCpp.Vec2(*components) assert np.array_equal( np.round(vec2py - scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec2_minusVec2Scaler(vec2cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND)) components = np.random.rand(2) scaler = np.random.rand(1).item() vec2py = vectormath.Vector2(*components) vec2cpp = NumCpp.Vec2(*components) assert np.array_equal( np.round(-vec2py + scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec2_minusScalerVec2(vec2cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec2_distance(): components1 = np.random.rand(2) components2 = np.random.rand(2) vec2_1py = vectormath.Vector2(*components1) vec2_2py = vectormath.Vector2(*components2) vec2_1cpp = NumCpp.Vec2(*components1) vec2_2cpp = NumCpp.Vec2(*components2) assert round((vec2_2py - vec2_1py).length, DECIMALS_TO_ROUND) == \ round(vec2_1cpp.distance(vec2_2cpp), DECIMALS_TO_ROUND)
def test_Vec2_angle(): components1 = np.random.rand(2) components2 = np.random.rand(2) vec2_1py = vectormath.Vector2(*components1) vec2_2py = vectormath.Vector2(*components2) vec2_1cpp = NumCpp.Vec2(*components1) vec2_2cpp = NumCpp.Vec2(*components2) assert round(vec2_1py.angle(vec2_2py), DECIMALS_TO_ROUND) == \ round(vec2_1cpp.angle(vec2_2cpp), DECIMALS_TO_ROUND)
def test_Vec2_clampMagnitude(): components = np.random.rand(2) + 10 clampMag = np.random.randint(1, 10, [1, ]).item() vec2 = NumCpp.Vec2(*components) clampedVec = vec2.clampMagnitude(float(clampMag)) assert np.round(clampedVec.norm(), DECIMALS_TO_ROUND) == clampMag assert np.round(vec2.dot(clampedVec) / vec2.norm() / clampedVec.norm(), DECIMALS_TO_ROUND) == 1
def test_Vec2_normalize(): components = np.random.rand(2) vec2py = vectormath.Vector2(*components) vec2cpp = NumCpp.Vec2(*components) assert np.array_equal( np.round(vec2py.normalize(), DECIMALS_TO_ROUND), np.round(vec2cpp.normalize().toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec2_multiplication_operator(): components = np.random.rand(2) scaler = np.random.rand(1).item() vec2py = vectormath.Vector2(*components) vec2cpp = NumCpp.Vec2(*components) assert np.array_equal(np.round(vec2py * scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec2_multVec2Scaler(vec2cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND)) components = np.random.rand(2) scaler = np.random.rand(1).item() vec2py = vectormath.Vector2(*components) vec2cpp = NumCpp.Vec2(*components) assert np.array_equal(np.round(vec2py * scaler, DECIMALS_TO_ROUND), np.round((NumCpp.Vec2_multScalerVec2(vec2cpp, scaler)).toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec2_array_constructor(): components = np.random.rand(2) shape = NumCpp.Shape(1, 2) cArray = NumCpp.NdArray(shape) cArray.setArray(components) vec2 = NumCpp.Vec2(cArray) assert vec2.x == components[0].item() assert vec2.y == components[1].item()
def test_Vec2_division_assignment_operator(): components1 = np.random.rand(2) scaler = np.random.rand(1).item() vec2_1py = vectormath.Vector2(*components1) vec2_1cpp = NumCpp.Vec2(*components1) vec2_1cpp /= scaler assert np.array_equal(np.round(vec2_1py / scaler, DECIMALS_TO_ROUND), np.round(vec2_1cpp.toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec2_subtraction_assignment_operator(): components1 = np.random.rand(2) components2 = np.random.rand(2) vec2_1py = vectormath.Vector2(*components1) vec2_2py = vectormath.Vector2(*components2) vec2_1cpp = NumCpp.Vec2(*components1) vec2_2cpp = NumCpp.Vec2(*components2) vec2_1cpp -= vec2_2cpp assert np.array_equal(np.round(vec2_1py - vec2_2py, DECIMALS_TO_ROUND), np.round(vec2_1cpp.toNdArray().flatten(), DECIMALS_TO_ROUND)) components1 = np.random.rand(2) scaler = np.random.rand(1).item() vec2_1py = vectormath.Vector2(*components1) vec2_1cpp = NumCpp.Vec2(*components1) vec2_1cpp -= scaler assert np.array_equal(np.round(vec2_1py - scaler, DECIMALS_TO_ROUND), np.round(vec2_1cpp.toNdArray().flatten(), DECIMALS_TO_ROUND))
def test_Vec2_print(): components = np.random.rand(2) vec2cpp = NumCpp.Vec2(*components) NumCpp.Vec2_print(vec2cpp)
def test_Vec2_component_constructor(): components = np.random.rand(2) vec2 = NumCpp.Vec2(*components) assert vec2.x == components[0].item() assert vec2.y == components[1].item()
def test_Vec2_equality_operator(): components = np.random.rand(2) vec2_1cpp = NumCpp.Vec2(*components) vec2_2cpp = NumCpp.Vec2(*components) assert vec2_1cpp == vec2_2cpp assert not (vec2_1cpp != vec2_2cpp)
def test_Vec2_norm(): components = np.random.rand(2) vec2py = vectormath.Vector2(*components) vec2cpp = NumCpp.Vec2(*components) assert round(vec2py.length, DECIMALS_TO_ROUND) == \ round(vec2cpp.norm(), DECIMALS_TO_ROUND)
def test_Vec2_default_constructor(): assert NumCpp.Vec2()