Skip to content
Snippets Groups Projects
test_std_vector.py 1.17 KiB
import numpy as np
import eigenpy
import inspect
import vector
from vector import printVectorOfMatrix, printVectorOf3x3, copyStdVector

np.random.seed(0)

l1 = [np.random.randn(3), np.random.randn(2)]
l2 = eigenpy.StdVec_VectorXd(l1)
l3 = [np.random.randn(2, 2), np.random.randn(3, 1), np.random.randn(4, 2)]


def checkAllValues(li1, li2):
    assert len(li1) == len(li2)
    n = len(li1)
    for i in range(n):
        assert np.array_equal(li1[i], li2[i])


checkAllValues(l1, l2)
checkAllValues(l1, copyStdVector(l1))


printVectorOfMatrix(l1)
print()
printVectorOfMatrix(l2)
print()
printVectorOfMatrix(l3)
print()


l4 = [np.random.randn(3, 3) for _ in range(4)]
assert "StdVec_Mat3d" in printVectorOf3x3.__doc__
printVectorOf3x3(l4)
print()

l4_copy = copyStdVector(l4)
assert isinstance(l4_copy, eigenpy.StdVec_MatrixXd)

l4_copy2 = vector.copyStdVec_3x3(l4)
assert isinstance(l4_copy2, vector.StdVec_Mat3d)


def checkZero(l):
    for x in l:
        assert np.allclose(x, 0.0), "x = {}".format(x)


print("l1:")
vector.setZero(l1)
print(l1)
checkZero(l1)

print("l2:")
l2_py = l2.tolist()
vector.setZero(l2_py)
print(l2_py)
checkZero(l2_py)

print("l3:")
vector.setZero(l3)
checkZero(l3)