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 }