|
3 | 3 |
|
4 | 4 | from unittest import TestCase |
5 | 5 |
|
| 6 | +import numpy as np |
| 7 | + |
6 | 8 | from AnyQt.QtCore import Qt |
7 | 9 |
|
8 | 10 | from Orange.data import Domain, ContinuousVariable, DiscreteVariable |
@@ -121,17 +123,30 @@ def test_other_roles(self): |
121 | 123 |
|
122 | 124 |
|
123 | 125 | class TestAbstractSortTableModel(TestCase): |
124 | | - def setUp(self): |
125 | | - assert issubclass(PyTableModel, AbstractSortTableModel) |
126 | | - self.model = PyTableModel([[1, 4], |
127 | | - [2, 3]]) |
128 | | - |
129 | 126 | def test_sorting(self): |
130 | | - self.model.sort(1, Qt.AscendingOrder) |
131 | | - self.assertSequenceEqual(self.model.mapToSourceRows(...).tolist(), [1, 0]) |
132 | | - |
133 | | - self.model.sort(1, Qt.DescendingOrder) |
134 | | - self.assertSequenceEqual(self.model.mapToSourceRows(...).tolist(), [0, 1]) |
| 127 | + assert issubclass(PyTableModel, AbstractSortTableModel) |
| 128 | + model = PyTableModel([[1, 4], |
| 129 | + [2, 2], |
| 130 | + [3, 3]]) |
| 131 | + model.sort(1, Qt.AscendingOrder) |
| 132 | + # mapToSourceRows |
| 133 | + self.assertSequenceEqual(model.mapToSourceRows(...).tolist(), [1, 2, 0]) |
| 134 | + self.assertEqual(model.mapToSourceRows(1).tolist(), 2) |
| 135 | + self.assertSequenceEqual(model.mapToSourceRows([1, 2]).tolist(), [2, 0]) |
| 136 | + self.assertSequenceEqual(model.mapToSourceRows([]), []) |
| 137 | + self.assertSequenceEqual(model.mapToSourceRows(np.array([], dtype=int)).tolist(), []) |
| 138 | + |
| 139 | + # mapFromSourceRows |
| 140 | + self.assertSequenceEqual(model.mapFromSourceRows(...).tolist(), [2, 0, 1]) |
| 141 | + self.assertEqual(model.mapFromSourceRows(1).tolist(), 0) |
| 142 | + self.assertSequenceEqual(model.mapFromSourceRows([1, 2]).tolist(), [0, 1]) |
| 143 | + self.assertSequenceEqual(model.mapFromSourceRows([]), []) |
| 144 | + self.assertSequenceEqual(model.mapFromSourceRows(np.array([], dtype=int)).tolist(), []) |
| 145 | + self.assertRaises(IndexError, model.mapFromSourceRows, np.r_[0.]) |
| 146 | + |
| 147 | + model.sort(1, Qt.DescendingOrder) |
| 148 | + self.assertSequenceEqual(model.mapToSourceRows(...).tolist(), [0, 2, 1]) |
| 149 | + self.assertSequenceEqual(model.mapFromSourceRows(...).tolist(), [0, 2, 1]) |
135 | 150 |
|
136 | 151 |
|
137 | 152 | class TestPyListModel(TestCase): |
|
0 commit comments