Skip to content

Commit ce493b0

Browse files
Add tests
1 parent 3a2b007 commit ce493b0

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

Orange/preprocess/preprocess.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,8 @@ def __call__(self, data):
605605
sparsness = data.X.shape[0] - np.count_nonzero(data.X, axis=0)
606606
else: # filter by nans
607607
if sp.issparse(data.X):
608-
sparsness = np.sum(np.isnan(data.X.data), axis=0)
608+
data_csc = sp.csc_matrix(data.X)
609+
sparsness = [np.sum(np.isnan(data.X[:, i].data)) for i in range(data_csc.shape[1])]
609610
else:
610611
sparsness = np.sum(np.isnan(data.X), axis=0)
611612
att = [a for a, s in zip(data.domain.attributes, sparsness) if s <= tailored_threshold]

Orange/tests/test_preprocess.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ def test_nan_sparse(self):
221221
self.data.X[:, 0] = 7
222222
true_out = self.data[:, 0]
223223
true_out.X = true_out.X.reshape(-1, 1)
224+
self.data.X = csr_matrix(self.data.X)
225+
true_out.X = csr_matrix(true_out.X)
224226
out = RemoveSparse(False, False, 0.5)(self.data)
225227
np.testing.assert_array_equal(out, true_out)
226228

Orange/widgets/data/tests/test_owpreprocess.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,12 +290,19 @@ def test_editor(self):
290290
"useFixedThreshold": False})
291291

292292
p = widget.createinstance(widget.parameters())
293+
widget.filterSettingsClicked()
294+
self.assertTrue(widget.percSpin.isEnabled())
295+
self.assertFalse(widget.fixedSpin.isEnabled())
293296
self.assertIsInstance(p, RemoveSparse)
294297
self.assertEqual(p.fixed_threshold, False)
295298
self.assertEqual(p.filter_0, True)
296299
self.assertEqual(p.threshold, 5)
297300

298-
widget.setParameters({"useFixedThreshold" : True})
301+
widget.setParameters({"useFixedThreshold" : True,
302+
"fixedThresh" : 30,
303+
"filter0" : False})
299304
p = widget.createinstance(widget.parameters())
300305
self.assertIsInstance(p, RemoveSparse)
301306
self.assertEqual(p.fixed_threshold, True)
307+
self.assertEqual(p.threshold, 30)
308+
self.assertFalse(p.filter_0)

0 commit comments

Comments
 (0)