def test_frontend():
    '''
    Test maxmin product frontend.
    '''
    A = sp.rand(5, 5, .2, 'csr')
    AP = _maxmin_naive(A)
    AP2 = maxmin(A)
    assert np.array_equal(AP, AP2.todense())
def test_naive_sparse():
    '''
    Test parameter checking cythonized maxmin product.
    '''
    A = sp.rand(5, 5, .2, 'csr')
    AP = _maxmin_naive(A)
    AP2 = c_maxmin_naive(A)  # expects ndarray type
    assert np.array_equal(AP, AP2)
def test_naive():
    '''
    Test naive implementation Python vs Cython.
    '''
    A = np.random.rand(5, 5)
    AP = _maxmin_naive(A)
    AP2 = c_maxmin_naive(A)
    assert np.array_equal(AP, AP2)
def test_naive_subset():
    '''
    Test naive implementation Python vs Cython with source/target parameters.
    '''
    a = 1
    b = 3
    A = np.random.rand(5, 5)
    AP = _maxmin_naive(A, a, b)
    AP2 = c_maxmin_naive(A, a, b)
    assert np.array_equal(AP, AP2)
def test_sparse():
    '''
    Test maxmin product sparse implementation.
    '''
    A = sp.rand(5, 5, .2, 'csr')
    AP = _maxmin_naive(A)
    AP2 = _maxmin_sparse(A)
    assert np.array_equal(AP, AP2.todense())

    AP3 = c_maxmin_sparse(A)
    assert np.array_equal(AP, AP3.todense())
def test_sparse_subset():
    '''
    Test maxmin product with source/target parameters.
    '''
    a = 1
    b = 3
    A = sp.rand(5, 5, .2, 'csr')
    AP = _maxmin_naive(A, a, b)
    AP2 = _maxmin_sparse(A, a, b)
    assert np.array_equal(AP, AP2.todense())

    AP3 = c_maxmin_sparse(A, a, b)
    assert np.array_equal(AP, AP3.todense())