|
4 | 4 | import unittest |
5 | 5 |
|
6 | 6 | import numpy as np |
| 7 | +import scipy.sparse as sp |
| 8 | + |
7 | 9 | from Orange.data import Table |
8 | 10 | from Orange.preprocess import Remove |
9 | 11 | from Orange.tests import test_filename |
@@ -133,3 +135,19 @@ def test_remove_unused_values_metas(self): |
133 | 135 | self.assertEqual(res.domain["b"].values, res.domain["c"].values) |
134 | 136 | self.assertEqual(res.domain["d"].values, ["1", "2"]) |
135 | 137 | self.assertEqual(res.domain["f"].values, ['1', 'hey']) |
| 138 | + |
| 139 | + def test_remove_unused_values_attr_sparse(self): |
| 140 | + data = self.test8 |
| 141 | + data = data[1:] |
| 142 | + data.X = sp.csr_matrix(data.X) |
| 143 | + remover = Remove(Remove.RemoveUnusedValues) |
| 144 | + new_data = remover(data) |
| 145 | + attr_res = remover.attr_results |
| 146 | + |
| 147 | + self.assertEqual((new_data.X != data.X).nnz, 0) |
| 148 | + self.assertEqual([a.values for a in new_data.domain.attributes |
| 149 | + if a.is_discrete], [['1'], ['4']]) |
| 150 | + self.assertEqual([c.values for c in new_data.domain.class_vars |
| 151 | + if c.is_discrete], [['1', '2', '3'], ['2']]) |
| 152 | + self.assertDictEqual(attr_res, |
| 153 | + {'removed': 0, 'reduced': 1, 'sorted': 0}) |
0 commit comments