Exemple #1
0
def test_mxv():
    m = Matrix.from_lists([0, 1, 2], [1, 2, 0], [1, 2, 3])
    v = Vector.from_lists([0, 1, 2], [2, 3, 4])
    o = m.mxv(v)
    assert o == Vector.from_lists([0, 1, 2], [3, 8, 6])

    assert m @ v == o
Exemple #2
0
def test_vector_assign():
    v = Vector.from_type(int, 10)
    assert v.nvals == 0
    w = Vector.from_lists(
        list(range(10)),
        list(range(10)))
    v[:] = w
    assert v == w

    v[1:] = w[9:1:-1]
    assert v == Vector.from_lists(
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
        [0, 9, 8, 7, 6, 5, 4, 3, 2, 1])

    w[9:1:-1] = v[9:1:-1]
    assert w == v

    v[:] = 3
    assert v == Vector.from_lists(
        list(range(10)),
        list(repeat(3, 10)))

    v[1:] = 0
    assert v == Vector.from_lists(
        list(range(10)),
        [3] + list(repeat(0, 9)))
def test_to_dense():
    v = Vector.from_lists(list(range(0, 6, 2)), list(range(3)))
    assert v.size == 5
    assert v.nvals == 3
    w = v.to_dense()
    assert w.nvals == 5
    assert w == Vector.from_lists([0, 1, 2, 3, 4], [0, 0, 1, 0, 2])
Exemple #4
0
def test_apply():
    v = Vector.from_lists(
        [0, 1, 2],
        [2, 3, 4])
    w = v.apply(unaryop.ainv_int64)
    assert w == Vector.from_lists(
        [0, 1, 2],
        [-2, -3, -4])
def test_vxm():
    m = Matrix.from_lists([0, 1, 2], [1, 2, 0], [1, 2, 3])
    v = Vector.from_lists([0, 1, 2], [2, 3, 4])
    o = v.vxm(m)
    assert o == Vector.from_lists([0, 1, 2], [12, 2, 6])

    w = Vector.dup(v)

    assert v @ m == o
    v @= m
    assert v == o
Exemple #6
0
def test_matrix_slicing():
    I, J = tuple(map(list, zip(*product(range(3), repeat=2))))
    V = list(range(9))
    m = Matrix.from_lists(I, J, V, 3, 3)
    v = m[2]
    assert v == Vector.from_lists([0, 1, 2], [6, 7, 8])

    # slice out row vector
    v = m[2, :]
    assert v == Vector.from_lists([0, 1, 2], [6, 7, 8])

    # slice out column vector
    v = m[:, 2]
    assert v == Vector.from_lists([0, 1, 2], [2, 5, 8])

    # slice copy
    n = m[:]
    assert n == m
    # also slice copy
    n = m[:, :]
    assert n == m

    # submatrix slice out rows
    sm = m[0:1]
    assert sm == Matrix.from_lists([0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2],
                                   [0, 1, 2, 3, 4, 5], 2, 3)

    # submatrix slice out columns
    n = m[:, 1:]
    assert n == Matrix.from_lists([0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1],
                                  [1, 2, 4, 5, 7, 8], 3, 2)

    # submatrix slice out column range
    sm = m[:, 1:2]
    assert sm == Matrix.from_lists([0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1],
                                   [1, 2, 4, 5, 7, 8], 3, 2)

    # submatrix slice out rows
    n = m[1:, :]
    assert n == Matrix.from_lists([0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2],
                                  [3, 4, 5, 6, 7, 8], 2, 3)

    # submatrix slice out row range
    sm = m[1:2, :]
    assert sm == Matrix.from_lists([0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2],
                                   [3, 4, 5, 6, 7, 8], 2, 3)
def test_vector_ewise_add():
    v = Vector.from_list(list(range(10)))
    w = Vector.from_list(list(range(10)))
    x = v.ewise_add(w)
    assert x == Vector.from_lists(list(range(10)), list(range(0, 20, 2)))
    z = v + w
    assert x == z
    v += w
    assert v == z
def test_vector_ewise_mult():
    v = Vector.from_list(list(range(10)))
    w = Vector.from_list(list(range(10)))
    x = v.ewise_mult(w)
    assert x == Vector.from_lists(list(range(10)),
                                  list(map(lambda x: x * x, list(range(10)))))
    z = v * w
    assert x == z
    v *= w
    assert v == z
Exemple #9
0
def test_matrix_slice_vector():
    v = Matrix.from_lists(list(range(10)), list(range(10)), list(range(10)))
    assert v[5] == Vector.from_lists([5], [5], 10)
Exemple #10
0
def test_select():
    v = Vector.from_lists(
        [0, 1, 2],
        [0, 0, 3])
    w = v.select(lib.GxB_NONZERO)
    assert w.to_lists() == [[2], [3]]