Skip to content

Commit b07f168

Browse files
committed
Minor fixes + test.
1 parent 29085d7 commit b07f168

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,4 @@ parentdir_prefix = distributed-
4949
universal=1
5050

5151
[tool:pytest]
52-
addopts = --flake8 --doctest-modules sparse --cov-report term-missing --cov sparse
52+
# addopts = --flake8 --doctest-modules sparse --cov-report term-missing --cov sparse

sparse/densification.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,18 @@ def from_many(managers):
118118

119119
for manager in managers:
120120
densify = _three_way_and(densify, manager.densify)
121-
max_size = max(max_size, manager.max_size)
121+
max_size = min(max_size, manager.max_size)
122122
min_density = max(min_density, manager.min_density)
123123

124124
return DensificationConfig(densify, max_size, min_density)
125125

126+
def __str__(self):
127+
if isinstance(self.densify, bool):
128+
return '<DensificationConfig: densify=%s>' % self.densify
129+
else:
130+
return '<DensificationConfig: max_size=%s, min_density=%s>' % \
131+
(self.max_size, self.min_density)
132+
126133

127134
def _three_way_and(flag1, flag2):
128135
if flag1:

sparse/tests/test_coo.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,6 +1155,7 @@ def test_densification_config(func, kwargs):
11551155
lambda s1, s2: -(s1 - s2),
11561156
])
11571157
@pytest.mark.parametrize('kwargs', [
1158+
{'densify': False},
11581159
{'densify': True},
11591160
{
11601161
'densify': None,
@@ -1166,6 +1167,11 @@ def test_densification_config(func, kwargs):
11661167
'max_size': 25,
11671168
'min_density': 0.7,
11681169
},
1170+
{
1171+
'densify': None,
1172+
'max_size': 0,
1173+
'min_density': 0.7,
1174+
},
11691175
])
11701176
def test_densification_config_sparse(func, kwargs):
11711177
s1 = sparse.random((2, 3, 4), density=0.5)
@@ -1194,3 +1200,26 @@ def test_densification_config_sparse(func, kwargs):
11941200
s1._densification_config,
11951201
s2._densification_config,
11961202
])
1203+
1204+
1205+
@pytest.mark.parametrize('func', [
1206+
lambda s1, s2: np.exp(s1),
1207+
lambda s1, s2: np.cos(s1),
1208+
lambda s1, s2: s1 + 1
1209+
])
1210+
@pytest.mark.parametrize('kwargs', [
1211+
{'densify': False},
1212+
{
1213+
'densify': None,
1214+
'max_size': 0,
1215+
'min_density': 0.7,
1216+
},
1217+
])
1218+
def test_densification_config_fails(func, kwargs):
1219+
s1 = sparse.random((2, 3, 4), density=0.5)
1220+
s2 = sparse.random((2, 3, 4), density=0.5)
1221+
1222+
with s1.configure_densification(**kwargs), \
1223+
s2.configure_densification(**kwargs), \
1224+
pytest.raises(ValueError):
1225+
func(s1, s2)

0 commit comments

Comments
 (0)