Skip to content

Commit 92a9a6a

Browse files
committed
dendrogram: Move tests
1 parent 9f689d4 commit 92a9a6a

File tree

2 files changed

+59
-55
lines changed

2 files changed

+59
-55
lines changed

Orange/widgets/unsupervised/tests/test_owhierarchicalclustering.py

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,14 @@
55
import numpy as np
66

77
from AnyQt.QtCore import QPoint, Qt
8-
from AnyQt.QtWidgets import QGraphicsScene, QGraphicsView
98
from AnyQt.QtTest import QTest
109

11-
from orangewidget.tests.base import GuiTest
1210
import Orange.misc
13-
from Orange.clustering import hierarchical
1411
from Orange.data import Table, Domain, ContinuousVariable, DiscreteVariable
1512
from Orange.distance import Euclidean
1613
from Orange.widgets.tests.base import WidgetTest, WidgetOutputsTestMixin
1714
from Orange.widgets.unsupervised.owhierarchicalclustering import \
18-
OWHierarchicalClustering, DendrogramWidget
15+
OWHierarchicalClustering
1916

2017

2118
class TestOWHierarchicalClustering(WidgetTest, WidgetOutputsTestMixin):
@@ -173,54 +170,3 @@ def test_restore_state(self):
173170
self.send_signal(w.Inputs.distances, self.distances, widget=w)
174171
ids_2 = self.get_output(w.Outputs.selected_data, widget=w).ids
175172
self.assertSequenceEqual(list(ids_1), list(ids_2))
176-
177-
178-
class TestDendrogramWidget(GuiTest):
179-
def setUp(self) -> None:
180-
super().setUp()
181-
self.scene = QGraphicsScene()
182-
self.view = QGraphicsView(self.scene)
183-
self.widget = DendrogramWidget()
184-
self.scene.addItem(self.widget)
185-
186-
def tearDown(self) -> None:
187-
self.scene.clear()
188-
del self.widget
189-
del self.view
190-
super().tearDown()
191-
192-
def test_widget(self):
193-
w = self.widget
194-
195-
T = hierarchical.Tree
196-
C = hierarchical.ClusterData
197-
S = hierarchical.SingletonData
198-
199-
def t(h: float, left: T, right: T):
200-
return T(C((left.value.first, right.value.last), h), (left, right))
201-
202-
def leaf(r, index):
203-
return T(S((r, r + 1), 0.0, index))
204-
205-
T = hierarchical.Tree
206-
207-
w.set_root(t(0.0, leaf(0, 0), leaf(1, 1)))
208-
w.resize(w.effectiveSizeHint(Qt.PreferredSize))
209-
h = w.height_at(QPoint())
210-
self.assertEqual(h, 0)
211-
h = w.height_at(QPoint(10, 0))
212-
self.assertEqual(h, 0)
213-
214-
self.assertEqual(w.pos_at_height(0).x(), w.rect().x())
215-
self.assertEqual(w.pos_at_height(1).x(), w.rect().x())
216-
217-
height = np.finfo(float).eps
218-
w.set_root(t(height, leaf(0, 0), leaf(1, 1)))
219-
220-
h = w.height_at(QPoint())
221-
self.assertEqual(h, height)
222-
h = w.height_at(QPoint(w.size().width(), 0))
223-
self.assertEqual(h, 0)
224-
225-
self.assertEqual(w.pos_at_height(0).x(), w.rect().right())
226-
self.assertEqual(w.pos_at_height(height).x(), w.rect().left())
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import numpy as np
2+
3+
from AnyQt.QtCore import Qt, QPoint
4+
from AnyQt.QtWidgets import QGraphicsScene
5+
6+
from orangewidget.tests.base import GuiTest
7+
8+
from Orange.clustering import hierarchical
9+
from Orange.widgets.utils.dendrogram import DendrogramWidget
10+
11+
12+
class TestDendrogramWidget(GuiTest):
13+
def setUp(self) -> None:
14+
super().setUp()
15+
self.scene = QGraphicsScene()
16+
self.widget = DendrogramWidget()
17+
self.scene.addItem(self.widget)
18+
19+
def tearDown(self) -> None:
20+
self.scene.clear()
21+
del self.widget
22+
super().tearDown()
23+
24+
def test_widget(self):
25+
w = self.widget
26+
27+
T = hierarchical.Tree
28+
C = hierarchical.ClusterData
29+
S = hierarchical.SingletonData
30+
31+
def t(h: float, left: T, right: T):
32+
return T(C((left.value.first, right.value.last), h), (left, right))
33+
34+
def leaf(r, index):
35+
return T(S((r, r + 1), 0.0, index))
36+
37+
T = hierarchical.Tree
38+
39+
w.set_root(t(0.0, leaf(0, 0), leaf(1, 1)))
40+
w.resize(w.effectiveSizeHint(Qt.PreferredSize))
41+
h = w.height_at(QPoint())
42+
self.assertEqual(h, 0)
43+
h = w.height_at(QPoint(10, 0))
44+
self.assertEqual(h, 0)
45+
46+
self.assertEqual(w.pos_at_height(0).x(), w.rect().x())
47+
self.assertEqual(w.pos_at_height(1).x(), w.rect().x())
48+
49+
height = np.finfo(float).eps
50+
w.set_root(t(height, leaf(0, 0), leaf(1, 1)))
51+
52+
h = w.height_at(QPoint())
53+
self.assertEqual(h, height)
54+
h = w.height_at(QPoint(w.size().width(), 0))
55+
self.assertEqual(h, 0)
56+
57+
self.assertEqual(w.pos_at_height(0).x(), w.rect().right())
58+
self.assertEqual(w.pos_at_height(height).x(), w.rect().left())

0 commit comments

Comments
 (0)