def _create_component(self): box = Box(bounds=[100.0, 100.0], position=[50.0, 50.0]) box.tools.append( ResizeTool(component=box, hotspots=set([ "top", "left", "right", "bottom", "top left", "top right", "bottom left", "bottom right" ]))) container = Container(bounds=[500, 500]) container.add(box) return container
class DragToolTestCase(unittest.TestCase): def setUp(self): self.component = Component(position=[50, 50], bounds=[100, 100], padding=10) self.tool = ResizeTool(component=self.component) def test_find_hotspots(self): points_and_results = [ # corners and edges ([50, 50], 'bottom left'), ([50, 100], 'left'), ([50, 150], 'top left'), ([100, 50], 'bottom'), ([100, 100], ''), ([100, 150], 'top'), ([150, 50], 'bottom right'), ([150, 100], 'right'), ([150, 150], 'top right'), # just inside threshhold ([60, 60], 'bottom left'), ([60, 100], 'left'), ([60, 140], 'top left'), ([100, 50], 'bottom'), ([100, 140], 'top'), ([140, 60], 'bottom right'), ([140, 100], 'right'), ([140, 140], 'top right'), # just outside box ([49, 49], ''), ([49, 50], ''), ([50, 49], ''), ([49, 100], ''), ([49, 151], ''), ([50, 151], ''), ([49, 150], ''), ([100, 49], ''), ([100, 151], ''), ([151, 49], ''), ([150, 49], ''), ([151, 50], ''), ([151, 100], ''), ([151, 151], ''), ([150, 151], ''), ([151, 150], ''), # just outside threshhold ([61, 61], ''), ([60, 61], 'left'), ([61, 60], 'bottom'), ([61, 100], ''), ([61, 139], ''), ([60, 139], 'left'), ([61, 140], 'top'), ([100, 61], ''), ([100, 139], ''), ([139, 61], ''), ([140, 61], 'right'), ([139, 60], 'bottom'), ([139, 100], ''), ([139, 139], ''), ([140, 139], 'right'), ([139, 140], 'top'), ] for (x, y), result in points_and_results: value = self.tool._find_hotspot(x, y) self.assertEqual( value, result, "Failed at (%f, %f): expected %s, got %s" % (x, y, result, value)) def test_set_delta_left(self): self.tool._selected_hotspot = 'left' value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([60, 50], [90, 100])), ([-10, 10], ([40, 50], [110, 100])), ([10, -10], ([60, 50], [90, 100])), ([-10, -10], ([40, 50], [110, 100])), ([90, 10], ([130, 50], [20, 100])), ([80, 10], ([130, 50], [20, 100])), ([79, 10], ([129, 50], [21, 100])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds) def test_set_delta_right(self): self.tool._selected_hotspot = 'right' value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([50, 50], [110, 100])), ([-10, 10], ([50, 50], [90, 100])), ([10, -10], ([50, 50], [110, 100])), ([-10, -10], ([50, 50], [90, 100])), ([-90, 10], ([50, 50], [20, 100])), ([-80, 10], ([50, 50], [20, 100])), ([-79, 10], ([50, 50], [21, 100])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds) def test_set_delta_bottom(self): self.tool._selected_hotspot = 'bottom' value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([50, 60], [100, 90])), ([-10, 10], ([50, 60], [100, 90])), ([10, -10], ([50, 40], [100, 110])), ([-10, -10], ([50, 40], [100, 110])), ([10, 90], ([50, 130], [100, 20])), ([10, 80], ([50, 130], [100, 20])), ([10, 79], ([50, 129], [100, 21])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds) def test_set_delta_top(self): self.tool._selected_hotspot = 'top' value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([50, 50], [100, 110])), ([-10, 10], ([50, 50], [100, 110])), ([10, -10], ([50, 50], [100, 90])), ([-10, -10], ([50, 50], [100, 90])), ([10, -90], ([50, 50], [100, 20])), ([10, -80], ([50, 50], [100, 20])), ([10, -79], ([50, 50], [100, 21])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds)
def setUp(self): self.component = Component(position=[50, 50], bounds=[100, 100], padding=10) self.tool = ResizeTool(component=self.component)
class DragToolTestCase(unittest.TestCase): def setUp(self): self.component = Component(position=[50, 50], bounds=[100, 100], padding=10) self.tool = ResizeTool(component=self.component) def test_find_hotspots(self): points_and_results = [ # corners and edges ([50, 50], "bottom left"), ([50, 100], "left"), ([50, 150], "top left"), ([100, 50], "bottom"), ([100, 100], ""), ([100, 150], "top"), ([150, 50], "bottom right"), ([150, 100], "right"), ([150, 150], "top right"), # just inside threshhold ([60, 60], "bottom left"), ([60, 100], "left"), ([60, 140], "top left"), ([100, 50], "bottom"), ([100, 140], "top"), ([140, 60], "bottom right"), ([140, 100], "right"), ([140, 140], "top right"), # just outside box ([49, 49], ""), ([49, 50], ""), ([50, 49], ""), ([49, 100], ""), ([49, 151], ""), ([50, 151], ""), ([49, 150], ""), ([100, 49], ""), ([100, 151], ""), ([151, 49], ""), ([150, 49], ""), ([151, 50], ""), ([151, 100], ""), ([151, 151], ""), ([150, 151], ""), ([151, 150], ""), # just outside threshhold ([61, 61], ""), ([60, 61], "left"), ([61, 60], "bottom"), ([61, 100], ""), ([61, 139], ""), ([60, 139], "left"), ([61, 140], "top"), ([100, 61], ""), ([100, 139], ""), ([139, 61], ""), ([140, 61], "right"), ([139, 60], "bottom"), ([139, 100], ""), ([139, 139], ""), ([140, 139], "right"), ([139, 140], "top"), ] for (x, y), result in points_and_results: value = self.tool._find_hotspot(x, y) self.assertEqual(value, result, "Failed at (%f, %f): expected %s, got %s" % (x, y, result, value)) def test_set_delta_left(self): self.tool._selected_hotspot = "left" value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([60, 50], [90, 100])), ([-10, 10], ([40, 50], [110, 100])), ([10, -10], ([60, 50], [90, 100])), ([-10, -10], ([40, 50], [110, 100])), ([90, 10], ([130, 50], [20, 100])), ([80, 10], ([130, 50], [20, 100])), ([79, 10], ([129, 50], [21, 100])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds) def test_set_delta_right(self): self.tool._selected_hotspot = "right" value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([50, 50], [110, 100])), ([-10, 10], ([50, 50], [90, 100])), ([10, -10], ([50, 50], [110, 100])), ([-10, -10], ([50, 50], [90, 100])), ([-90, 10], ([50, 50], [20, 100])), ([-80, 10], ([50, 50], [20, 100])), ([-79, 10], ([50, 50], [21, 100])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds) def test_set_delta_bottom(self): self.tool._selected_hotspot = "bottom" value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([50, 60], [100, 90])), ([-10, 10], ([50, 60], [100, 90])), ([10, -10], ([50, 40], [100, 110])), ([-10, -10], ([50, 40], [100, 110])), ([10, 90], ([50, 130], [100, 20])), ([10, 80], ([50, 130], [100, 20])), ([10, 79], ([50, 129], [100, 21])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds) def test_set_delta_top(self): self.tool._selected_hotspot = "top" value = (self.component.position[:], self.component.bounds[:]) deltas_and_results = [ ([10, 10], ([50, 50], [100, 110])), ([-10, 10], ([50, 50], [100, 110])), ([10, -10], ([50, 50], [100, 90])), ([-10, -10], ([50, 50], [100, 90])), ([10, -90], ([50, 50], [100, 20])), ([10, -80], ([50, 50], [100, 20])), ([10, -79], ([50, 50], [100, 21])), ] for (x, y), (position, bounds) in deltas_and_results: self.tool.set_delta(value, x, y) self.assertEqual(self.component.position, position) self.assertEqual(self.component.bounds, bounds)