From e7f18d6891537db08220c9d0f79d03c4e9a3c991 Mon Sep 17 00:00:00 2001 From: wrobell Date: Thu, 26 Jul 2007 19:11:32 +0000 Subject: [PATCH] - added missing tests (commented out for now) --- gaphas/tests/test_canvas.py | 165 ++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 gaphas/tests/test_canvas.py diff --git a/gaphas/tests/test_canvas.py b/gaphas/tests/test_canvas.py new file mode 100644 index 0000000..d155d61 --- /dev/null +++ b/gaphas/tests/test_canvas.py @@ -0,0 +1,165 @@ +import unittest + +from gaphas.canvas import Canvas +from gaphas.examples import Box +from gaphas.item import Line, Handle +from gaphas.constraint import BalanceConstraint, EqualsConstraint + +# fixme: what about multiple constraints for a handle? +# what about 1d projection? + +###class ConstraintProjectionTestCase(unittest.TestCase): +### def test_line_projection(self): +### """Test projection with line's handle on element's side""" +### line = Line() +### line.matrix.translate(15, 50) +### h1, h2 = line.handles() +### h1.x, h1.y = 0, 0 +### h2.x, h2.y = 20, 20 +### +### box = Box() +### box.matrix.translate(10, 10) +### box.width = 40 +### box.height = 20 +### h_nw, h_ne, h_se, h_sw = box.handles() +### +### +### canvas = Canvas() +### canvas.add(line) +### canvas.add(box) +### +### # move line's second handle on box side +### h2.x, h2.y = 5, -20 +### +### bc = BalanceConstraint(band=(h_sw.x, h_se.x), v=h2.x, balance=0.25) +### canvas.projector(bc, x={h_sw.x: box, h_se.x: box, h2.x: line}) +### canvas._solver.add_constraint(bc) +### +### eq = EqualsConstraint(a=h_se.y, b=h2.y) +### canvas.projector(eq, y={h_se.y: box, h2.y: line}) +### canvas._solver.add_constraint(eq) +### +### box.request_update() +### line.request_update() +### +### canvas.update() +### +### box.width = 60 +### box.height = 30 +### +### canvas.update() +### +### # expect h2.x to be moved due to balance constraint +### self.assertEquals(10, h2.x) +### self.assertEquals(-10, h2.y) + + +###class CanvasConstraintTestCase(unittest.TestCase): +### def test_adding_constraint(self): +### """Test adding canvas constraint""" +### canvas = Canvas() +### cons = canvas._canvas_constraints +### +### l1 = Line() +### canvas.add(l1) +### +### h1, h2 = l1.handles() +### h = Handle() +### +### eq1 = EqualsConstraint(h1.x, h.x) +### canvas.add_canvas_constraint(l1, h1, eq1) +### self.assertTrue(l1 in cons) +### self.assertTrue(h1 in cons[l1]) +### self.assertTrue(eq1 in cons[l1][h1]) +### +### l2 = Line() +### canvas.add(l2) +### +### h1, h2 = l2.handles() +### h = Handle() +### +### eq2 = EqualsConstraint(h1.x, h.x) +### canvas.add_canvas_constraint(l2, h1, eq2) +### self.assertTrue(l2 in cons) +### self.assertTrue(h1 in cons[l2]) +### self.assertTrue(eq2 in cons[l2][h1]) +### +### +### def test_adding_constraint_ex(self): +### """Test adding canvas constraint for non-existing item""" +### canvas = Canvas() +### l1 = Line() +### h1, h2 = l1.handles() +### h = Handle() +### +### eq = EqualsConstraint(h1.x, h.x) +### self.assertRaises(ValueError, canvas.add_canvas_constraint, l1, h1, eq) +### +### +### def test_removing_constraint(self): +### """Test removing canvas constraint""" +### canvas = Canvas() +### cons = canvas._canvas_constraints +### +### l1 = Line() +### canvas.add(l1) +### +### h1, h2 = l1.handles() +### h = Handle() +### +### eq1 = EqualsConstraint(h1.x, h.x) +### canvas.add_canvas_constraint(l1, h1, eq1) +### +### # test preconditions +### assert l1 in cons +### assert h1 in cons[l1] +### assert eq1 in cons[l1][h1] +### +### canvas.remove_canvas_constraint(l1, h1, eq1) +### self.assertTrue(l1 in cons) +### self.assertTrue(h1 in cons[l1]) +### self.assertFalse(eq1 in cons[l1][h1]) +### +### eq1 = EqualsConstraint(h1.x, h.x) +### eq2 = EqualsConstraint(h1.y, h.y) +### canvas.add_canvas_constraint(l1, h1, eq1) +### canvas.add_canvas_constraint(l1, h1, eq2) +### +### # test preconditions +### assert l1 in cons +### assert h1 in cons[l1] +### assert eq1 in cons[l1][h1] +### assert eq2 in cons[l1][h1] +### +### canvas.remove_canvas_constraint(l1, h1) +### +### self.assertTrue(l1 in cons) +### self.assertTrue(h1 in cons[l1]) +### self.assertFalse(eq1 in cons[l1][h1]) +### self.assertFalse(eq2 in cons[l1][h1]) +### +### +### def test_fetching_constraints(self): +### """Test fetching canvas constraints""" +### canvas = Canvas() +### cons = canvas._canvas_constraints +### +### l1 = Line() +### canvas.add(l1) +### +### h1, h2 = l1.handles() +### h = Handle() +### +### eq1 = EqualsConstraint(h1.x, h.x) +### eq2 = EqualsConstraint(h1.y, h.y) +### canvas.add_canvas_constraint(l1, h1, eq1) +### canvas.add_canvas_constraint(l1, h1, eq2) +### +### # test preconditions +### assert l1 in cons +### assert h1 in cons[l1] +### assert eq1 in cons[l1][h1] +### assert eq2 in cons[l1][h1] +### +### self.assertTrue(eq1 in canvas.canvas_constraints(l1)) +### self.assertTrue(eq2 in canvas.canvas_constraints(l1))