001    package test; 
002    
003    import physics3d.Angle;
004    import physics3d.Shape;
005    import physics3d.Vect3;
006    
007    import components.GameSettings;
008    import components.GameSpace;
009    import components.TriangleBumper;
010    
011    import junit.framework.TestCase;
012    
013    public class TestTriangleBumper extends TestCase {
014            GameSpace g1;
015            GameSpace g2;
016            
017            Vect3 p1;
018            Vect3 p2;
019            
020            Vect3 o1;
021            Vect3 o2;
022            
023            Angle a1;
024            Angle a2;
025            
026            TriangleBumper b1;
027            TriangleBumper b2;
028            TriangleBumper b3;
029            TriangleBumper b4;
030            
031            public TestTriangleBumper(String name) {
032                    super(name);
033                    
034                    g1 = new GameSpace(new GameSettings());
035                    g2 = new GameSpace(new GameSettings());
036                    
037                    p1 = new Vect3(1, 2, 3);
038                    p2 = new Vect3(-5, 10, -12);
039                    
040                    o1 = Vect3.X_HAT;
041                    o2 = Vect3.Z_HAT;
042                    
043                    a1 = Angle.DEG_270;
044                    a2 = Angle.DEG_90;
045                    
046                    b1 = new TriangleBumper(p1, o1, a1, "b1", g1);
047                    b2 = new TriangleBumper(p2, o2, a2, "b2", g2);
048                    b3 = new TriangleBumper(p1, o1, a1, "b1", g1);
049                    b4 = new TriangleBumper(p1, o1, a1, "b1", g2);
050            }
051            
052            protected void setUp() {}
053            
054    //      test creation
055            public void testCreation() {
056                    checkCreation(p1, o1, a1, "bumper", g1);
057            }
058            
059            public void testCreation2() {
060                    checkCreation(p2, o2, a2, "", g2);
061            }
062            
063            protected void checkCreation(Vect3 position, Vect3 orientVect, Angle a, String name, GameSpace g) {
064                    TriangleBumper b = null;
065                    try {
066                            b = new TriangleBumper(position, orientVect, a, name, g);
067                    } catch (Exception e) {
068                            fail("could not create TriangleBumper with legal values");
069                    }
070            }
071            
072            //test getPosition
073            public void testPosition() {
074                    checkGetPosition(b1, p1);
075            }
076            
077            public void testPosition2() {
078                    checkGetPosition(b2, p2);
079            }
080            
081            protected void checkGetPosition(TriangleBumper b, Vect3 p) {
082                    assertEquals("position of TriangleBumper should have been " + p.toString() +
083                                    ", not " + b.getTLF().toString(), b.getTLF(), p);
084            }
085    
086            //test getVelocity (make sure it's zero!)
087            public void testVelocity() {
088                    checkGetVelocity(b1);
089            }
090            
091            public void testVelocity2() {
092                    checkGetVelocity(b2);
093            }
094            
095    
096            protected void checkGetVelocity(TriangleBumper b) {
097                    assertEquals("velocity of TriangleBumper should have been 0", b.getVelocity(), Vect3.ZERO);
098            }
099    
100            
101            //test getOrientVector
102            public void testOrientVect() {
103                    checkOrientVector(b1, o1);
104            }
105            
106            public void testOrientVect2() {
107                    checkOrientVector(b2, o2);
108            }
109            
110            protected void checkOrientVector(TriangleBumper b, Vect3 ov) {
111                    assertEquals("Orientation vector of TriangleBumper should have been " + ov.toString() +
112                                    ", not " + b.getOrientVector().toString(), b.getOrientVector(), ov);
113            }
114            
115            //test getOrientAngle
116            public void testOrientAngle() {
117                    checkOrientAngle(b1, a1);
118            }
119            
120            public void testOrientAngle2() {
121                    checkOrientAngle(b2, a2);
122            }
123            
124            protected void checkOrientAngle(TriangleBumper b, Angle a) {
125                    assertEquals("Orientation angle of SquareBumper should have been " + a.toString() +
126                                    ", not " + b.getOrientAngle().toString(), b.getOrientAngle(), a);
127            }
128            
129            //test getName
130            public void testName() {
131                    checkName(b1, "b1");
132            }
133            
134            protected void checkName(TriangleBumper b, String name) {
135                    assertEquals("name should have been " + name + ", not " + b.getName(), b.getName(), name);
136            }
137            
138            //test getShape
139            public void testShape() {
140                    checkShape(b1);
141            }
142            
143            public void testShape2() {
144                    checkShape(b2);
145            }
146            
147            protected void checkShape(TriangleBumper b) {
148                    assertEquals(b.getShape(), Shape.getTriBumperShape());
149            }
150            
151            //test equals
152            public void testEquals() {
153                    checkEquals(b1, b1);
154            }
155            
156            public void testEquals2() {
157                    checkEquals(b1, b3);
158            }
159            
160            public void testNotEquals() {
161                    checkNotEquals(b1, b2);
162            }
163            
164            public void testNotEquals2() {
165                    checkNotEquals(b1, b4);
166            }
167            
168            protected void checkEquals(TriangleBumper b1, TriangleBumper b2) {
169                    assertEquals(b1, b2);
170            }
171            
172            protected void checkNotEquals(TriangleBumper b1, TriangleBumper b2) {
173                    assertFalse(b1.equals(b2));
174            }
175    }