|
11 | 11 | from Orange.widgets.tests.base import ( |
12 | 12 | WidgetTest, WidgetOutputsTestMixin, ProjectionWidgetTestMixin |
13 | 13 | ) |
14 | | -from Orange.widgets.utils.colorpalettes import ContinuousPalettes |
| 14 | +from Orange.widgets.utils.colorpalettes import ( |
| 15 | + ContinuousPalettes, DiscretePalette |
| 16 | +) |
15 | 17 | from Orange.widgets.visualize.utils.widget import ( |
16 | 18 | OWDataProjectionWidget, OWProjectionWidgetBase |
17 | 19 | ) |
@@ -113,6 +115,33 @@ def test_get_tooltip(self): |
113 | 115 | and "3" in widget.get_tooltip([0, 1])) |
114 | 116 | self.assertEqual(widget.get_tooltip([]), "") |
115 | 117 |
|
| 118 | + def test_get_palette(self): |
| 119 | + widget = self.widget |
| 120 | + |
| 121 | + widget.attr_color = None |
| 122 | + self.assertIsNone(widget.get_palette()) |
| 123 | + |
| 124 | + var = ContinuousVariable("v") |
| 125 | + var.palette = Mock() |
| 126 | + widget.attr_color = var |
| 127 | + self.assertIs(widget.get_palette(), var.palette) |
| 128 | + |
| 129 | + var = DiscreteVariable("v", values=tuple("abc")) |
| 130 | + var.palette = Mock() |
| 131 | + widget.attr_color = var |
| 132 | + self.assertIs(widget.get_palette(), var.palette) |
| 133 | + |
| 134 | + values = tuple("abcdefghijklmn") |
| 135 | + merged = ["a", "c", "d", "h", "n", "Others"] |
| 136 | + var = DiscreteVariable("v", values=values) |
| 137 | + var.palette = DiscretePalette( |
| 138 | + "foo", "bar", [[i] * 3 for i, _ in enumerate(values)]) |
| 139 | + widget.get_color_labels = lambda: merged |
| 140 | + widget.attr_color = var |
| 141 | + np.testing.assert_equal( |
| 142 | + widget.get_palette().palette[:-1], |
| 143 | + [[var.values.index(label)] * 3 for label in merged[:-1]]) |
| 144 | + |
116 | 145 |
|
117 | 146 | class TestableDataProjectionWidget(OWDataProjectionWidget): |
118 | 147 | def get_embedding(self): |
|
0 commit comments