Ejemplo n.º 1
0
def test_compare_load(pool_params):
    pool_1 = Pool.from_file(pool_params['pool_file'],
                            pool_params['component_type'], 10)
    f = open(pool_params['pool_file'], "rb")
    array = f.read()
    pool_2 = Pool.from_bytes(array, pool_params['component_type'], 10)
    assert pool_1.get_num_items() == pool_2.get_num_items()
    assert pool_1.dimension == pool_2.dimension
    for i in range(pool_1.get_num_items()):
        for j in range(pool_1.dimension):
            assert pool_1.get_item(i)[j] == pool_2.get_item(i)[j]
Ejemplo n.º 2
0
def test_mobius_transform_float():
    EPS = 1e-6
    vectors = np.array([[0.1, 0.1, 0.1, 0.1], [10.0, 10.0, 0.0, 0.0],
                        [1.0, 0.0, 0.0, 0.0], [-1.0, -1.0, -1.0, -1.0]],
                       np.float32)
    expected_vectors = [[2.5, 2.5, 2.5, 2.5], [0.05, 0.05, 0, 0], [1, 0, 0, 0],
                        [-0.25, -0.25, -0.25, -0.25]]
    vector_bytes = vectors.tobytes()
    pool = Pool.from_bytes(vector_bytes, EVectorComponentType.Float, 4)
    transformed_pool = Pool.from_bytes(bytes(0), EVectorComponentType.Float, 4)
    transformed_pool = transform_mobius(pool)
    for i in range(transformed_pool.get_num_items()):
        for j in range(transformed_pool.dimension):
            assert abs(
                transformed_pool.get_item(i)[j] - expected_vectors[i][j]) < EPS
            assert abs(pool.get_item(i)[j] - vectors[i][j]) < EPS
    assert transformed_pool.dimension == 4
    assert transformed_pool.get_num_items() == 4
    assert transformed_pool.dtype == EVectorComponentType.Float
    assert pool.dtype == EVectorComponentType.Float
Ejemplo n.º 3
0
def test_mobius_transform_i32():
    EPS = 1e-6
    vectors = np.array(
        [[12, 13, -14, 15], [1000000000, 1000000000, 1000000000, 1000000000],
         [1, 0, 0, 0], [-1, -1, -1, -1]], np.int32)
    expected_vectors = [[
        0.0163487738, 0.0177111717, -0.0190735695, 0.0204359673
    ], [1.25e-10, 1.25e-10, 1.25e-10, 1.25e-10], [1, 0, 0, 0],
                        [-0.25, -0.25, -0.25, -0.25]]
    vector_bytes = vectors.tobytes()
    pool = Pool.from_bytes(vector_bytes, EVectorComponentType.I32, 4)
    transformed_pool = Pool.from_bytes(bytes(0), EVectorComponentType.Float, 4)
    transformed_pool = transform_mobius(pool)
    for i in range(transformed_pool.get_num_items()):
        for j in range(transformed_pool.dimension):
            assert abs(
                transformed_pool.get_item(i)[j] - expected_vectors[i][j]) < EPS
            assert pool.get_item(i)[j] == vectors[i][j]
    assert transformed_pool.dimension == 4
    assert transformed_pool.get_num_items() == 4
    assert transformed_pool.dtype == EVectorComponentType.Float
    assert pool.dtype == EVectorComponentType.I32
Ejemplo n.º 4
0
def test_load_float_from_bytes():
    EPS = 1e-6
    array = [[1.0, 2.0, 3.0], [0.0, -1.0, -2.0], [111.0, 0.5, 3.141592]]
    vector_bytes = bytes()
    for vector in array:
        for value in vector:
            vector_bytes += struct.pack('f', value)
    pool = Pool.from_bytes(vector_bytes, EVectorComponentType.Float, 3)
    for i in range(pool.get_num_items()):
        for j in range(pool.dimension):
            assert abs(pool.get_item(i)[j] - array[i][j]) < EPS
    assert pool.dimension == 3
    assert pool.get_num_items() == 3