Skip to content

Commit

Permalink
fix test failure due to change in scipy indexing
Browse files Browse the repository at this point in the history
  • Loading branch information
lukeolson committed May 20, 2019
1 parent a80a174 commit 6f5e549
Showing 1 changed file with 8 additions and 16 deletions.
24 changes: 8 additions & 16 deletions pyamg/aggregation/tests/test_smooth.py
Original file line number Diff line number Diff line change
Expand Up @@ -409,13 +409,7 @@ def test_range(self):
cases.append((A.tobsr(blocksize=(2, 2)), B, ('energy', {'krylov': 'cgnr', 'degree': 2, 'maxiter': 3, 'postfilter': {'theta': 0.05}}), name))
cases.append((A.tobsr(blocksize=(2, 2)), B, ('energy', {'krylov': 'cgnr', 'degree': 2, 'maxiter': 3, 'prefilter': {'theta': 0.05}}), name))
cases.append((A.tobsr(blocksize=(2, 2)), B, ('energy', {'krylov': 'cgnr', 'degree': 2, 'maxiter': 3}), name))
# fail
print('-----')
print(B.shape)
print(iB.shape)
print('-----')
cases.append((A.tobsr(blocksize=(2, 2)), iB, ('energy', {'krylov': 'cg'}), name))
#
cases.append((A.tobsr(blocksize=(2, 2)), B, ('energy', {'krylov': 'gmres', 'degree': 2, 'maxiter': 3}), name))
cases.append((A.tobsr(blocksize=(2, 2)), B, ('energy', {'krylov': 'gmres', 'degree': 2, 'maxiter': 3, 'postfilter': {'theta': 0.05}}), name))
cases.append((A.tobsr(blocksize=(2, 2)), B, ('energy', {'krylov': 'gmres', 'degree': 2, 'maxiter': 3, 'prefilter': {'theta': 0.05}}), name))
Expand All @@ -426,12 +420,11 @@ def test_range(self):
cases.append((A, B, ('jacobi', {'filter': True, 'weighting': 'diagonal'}), name))
cases.append((A, B, ('jacobi', {'filter': True, 'weighting': 'local'}), name))
cases.append((A, B, ('jacobi', {'filter': True, 'weighting': 'block'}), name))
# fail
#cases.append((A, B, ('energy', {'degree': 2}), name))
#cases.append((A, B, ('energy', {'degree': 3, 'postfilter': {'theta': 0.05}}), name))
#cases.append((A, B, ('energy', {'degree': 3, 'prefilter': {'theta': 0.05}}), name))
#cases.append((A, B, ('energy', {'krylov': 'cgnr'}), name))
#cases.append((A, B, ('energy', {'krylov': 'gmres', 'degree': 2}), name))
cases.append((A, B, ('energy', {'degree': 2}), name))
cases.append((A, B, ('energy', {'degree': 3, 'postfilter': {'theta': 0.05}}), name))
cases.append((A, B, ('energy', {'degree': 3, 'prefilter': {'theta': 0.05}}), name))
cases.append((A, B, ('energy', {'krylov': 'cgnr'}), name))
cases.append((A, B, ('energy', {'krylov': 'gmres', 'degree': 2}), name))

# Classic SA cases
for A, B, smooth, name in cases:
Expand All @@ -451,7 +444,6 @@ def blocksize(A):
# Root-node cases
counter = 0
for A, B, smooth, name in cases:
print(name)
counter += 1

if isinstance(smooth, tuple):
Expand All @@ -473,6 +465,9 @@ def blocksize(A):
Bc = ml.levels[1].B
P = ml.levels[0].P.tocsr()

T.eliminate_zeros()
P.eliminate_zeros()

# P should preserve B in its range, wherever P
# has enough nonzeros
mask = ((P.indptr[1:] - P.indptr[:-1]) >= B.shape[1])
Expand All @@ -482,9 +477,6 @@ def blocksize(A):
# P should be the identity at Cpts
I1 = eye(T.shape[1], T.shape[1], format='csr', dtype=T.dtype)
I2 = P[Cpts, :]
print(Cpts)
print(I1.data)
print(I2.data)
assert_almost_equal(I1.data, I2.data)
assert_equal(I1.indptr, I2.indptr)
assert_equal(I1.indices, I2.indices)
Expand Down

0 comments on commit 6f5e549

Please sign in to comment.