1
2
3
4
5
6
7
8
9
10 package nl.tudelft.simulation.dsol.animation.D2;
11
12 import java.awt.Dimension;
13 import java.awt.geom.Point2D;
14 import java.awt.geom.Rectangle2D;
15
16 import junit.framework.Assert;
17 import junit.framework.TestCase;
18 import nl.tudelft.simulation.dsol.animation.D2.Renderable2DInterface;
19
20 /***
21 * This class defines the JUnit test for the D2Test <br>
22 * (c) copyright 2003 <a href="http://www.simulation.tudelft.nl">Delft
23 * University of Technology </a>, the Netherlands. <br>
24 * See for project information <a
25 * href="http://www.simulation.tudelft.nl">www.simulation.tudelft.nl </a> <br>
26 * License of use: <a href="http://www.gnu.org/copyleft/gpl.html">General Public
27 * License (GPL) </a>, no warranty <br>
28 *
29 * @version 2.0 21.09.2003 <br>
30 * @author <a href="http://www.tbm.tudelft.nl/webstaf/peterja/index.htm">Peter
31 * Jacobs </a>, <a
32 * href="http://www.tbm.tudelft.nl/webstaf/alexandv/index.htm">Alexander
33 * Verbraeck </a>
34 */
35 public class D2Test extends TestCase
36 {
37 /*** TEST_METHOD_NAME refers to the name of the test method */
38 public static final String TEST_METHOD_NAME = "test";
39
40 /***
41 * constructs a new D2Test
42 */
43 public D2Test()
44 {
45 super(TEST_METHOD_NAME);
46 }
47
48 /***
49 * tests the 2D Animation
50 */
51 public void test()
52 {
53 Rectangle2D extent = new Rectangle2D.Double(0, 0, 100, 100);
54 Dimension size = new Dimension(100, 100);
55
56 Assert
57 .assertTrue(Renderable2DInterface.Util.getScale(extent, size) == 1.0);
58 size.setSize(200, 200);
59 Assert
60 .assertTrue(Renderable2DInterface.Util.getScale(extent, size) == 0.5);
61 extent.setRect(0, 0, 50, 50);
62 Assert
63 .assertTrue(Renderable2DInterface.Util.getScale(extent, size) == 0.25);
64
65 size.setSize(0, 0);
66 Assert.assertTrue(Double.isInfinite(Renderable2DInterface.Util
67 .getScale(extent, size)));
68
69 size.setSize(-1, -1);
70 Assert.assertTrue(Double.isNaN(Renderable2DInterface.Util.getScale(
71 extent, size)));
72
73 size.setSize(50, 100);
74 Assert.assertTrue(Double.isNaN(Renderable2DInterface.Util.getScale(
75 extent, size)));
76 size.setSize(100, 100);
77 extent.setRect(0, 0, 100, 100);
78 Point2D point = new Point2D.Double(1, 1);
79 Assert.assertTrue(Renderable2DInterface.Util.getScreenCoordinates(
80 point, extent, size).distance(1, 99) == 0);
81 size.setSize(200, 200);
82 extent.setRect(0, 0, 100, 100);
83 point = new Point2D.Double(1, 1);
84 Assert.assertTrue(Renderable2DInterface.Util.getScreenCoordinates(
85 point, extent, size).distance(2, 198) == 0);
86
87 size.setSize(-200, -200);
88 extent.setRect(0, 0, 100, 100);
89 point = new Point2D.Double(1, 1);
90 Assert.assertNull(Renderable2DInterface.Util.getScreenCoordinates(
91 point, extent, size));
92
93 size.setSize(200, 100);
94 extent.setRect(0, 0, 100, 100);
95 point = new Point2D.Double(1, 1);
96 Assert.assertNull(Renderable2DInterface.Util.getScreenCoordinates(
97 point, extent, size));
98
99 size.setSize(100, 100);
100 extent.setRect(0, 0, 100, 100);
101 point = new Point2D.Double(1, 1);
102 Assert.assertNull(Renderable2DInterface.Util.getScreenCoordinates(null,
103 extent, size));
104 Assert.assertNull(Renderable2DInterface.Util.getScreenCoordinates(
105 point, null, size));
106 Assert.assertNull(Renderable2DInterface.Util.getScreenCoordinates(
107 point, extent, null));
108
109 size.setSize(100, 100);
110 extent.setRect(0, 0, 100, 100);
111 point = new Point2D.Double(-1, 1);
112 Assert.assertNull(Renderable2DInterface.Util.getScreenCoordinates(
113 point, extent, size));
114
115 size.setSize(100, 100);
116 extent.setRect(0, 0, 100, 100);
117 point = new Point2D.Double(1, 1);
118 Assert.assertTrue(Renderable2DInterface.Util.getWorldCoordinates(point,
119 extent, size).distance(1, 99) == 0);
120
121 size.setSize(200, 200);
122 extent.setRect(0, 0, 100, 100);
123 point = new Point2D.Double(1, 1);
124 Assert.assertTrue(Renderable2DInterface.Util.getWorldCoordinates(point,
125 extent, size).distance(0.5, 99.5) == 0);
126
127
128 size.setSize(-200, -200);
129 extent.setRect(0, 0, 100, 100);
130 point = new Point2D.Double(1, 1);
131 Assert.assertNull(Renderable2DInterface.Util.getWorldCoordinates(point,
132 extent, size));
133
134
135 size.setSize(200, 100);
136 extent.setRect(0, 0, 100, 100);
137 point = new Point2D.Double(1, 1);
138 Assert.assertNull(Renderable2DInterface.Util.getWorldCoordinates(point,
139 extent, size));
140
141
142 size.setSize(100, 100);
143 extent.setRect(0, 0, 100, 100);
144 point = new Point2D.Double(1, 1);
145 Assert.assertNull(Renderable2DInterface.Util.getWorldCoordinates(null,
146 extent, size));
147 Assert.assertNull(Renderable2DInterface.Util.getWorldCoordinates(point,
148 null, size));
149 Assert.assertNull(Renderable2DInterface.Util.getWorldCoordinates(point,
150 extent, null));
151
152
153 size.setSize(100, 100);
154 extent.setRect(0, 0, 100, 100);
155 point = new Point2D.Double(-1, 1);
156 Assert.assertNull(Renderable2DInterface.Util.getWorldCoordinates(point,
157 extent, size));
158
159
160 size.setSize(200, 50);
161 extent.setRect(0, 0, 1000, 1000);
162 extent = Renderable2DInterface.Util.computeVisibleExtent(extent, size);
163 Assert
164 .assertTrue(Renderable2DInterface.Util.getScale(extent, size) == 5.0);
165 Assert.assertTrue(extent.getMinY() == 375.0);
166 Assert.assertTrue(extent.getHeight() == 250.0);
167 }
168 }