Files
EP2/src/Aufgabe3Test.java
2022-04-07 17:52:43 +02:00

80 lines
2.7 KiB
Java

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class Aufgabe3Test {
@Test
public void testEP2() {
// create five bodies
Body sun = new Body(SolSystem.SUN);
Body earth = new Body(SolSystem.EARTH);
Body mercury = new Body(SolSystem.MERCURY);
Body venus = new Body(SolSystem.VENUS);
Body mars = new Body(SolSystem.MARS);
// check basic functions of 'BodyLinkedList'
BodyLinkedList bl = new BodyLinkedList();
bl.addLast(mercury);
bl.addLast(sun);
bl.addLast(earth);
assertEquals(3, bl.size());
assertEquals(mercury, bl.getFirst());
assertEquals(earth, bl.getLast());
assertEquals(mercury, bl.get(0));
assertEquals(sun, bl.get(1));
assertEquals(earth, bl.get(2));
assertEquals(2, bl.indexOf(earth));
assertEquals(1, bl.indexOf(sun));
assertEquals(0, bl.indexOf(mercury));
assertEquals(mercury, bl.pollFirst());
assertEquals(earth, bl.pollLast());
assertEquals(sun, bl.pollFirst());
assertEquals(0, bl.size());
assertNull(bl.getFirst());
bl.addFirst(earth);
bl.addFirst(venus);
bl.addFirst(sun);
bl.add(1, mercury);
bl.add(4, mars);
assertEquals(5, bl.size());
assertEquals(sun, bl.get(0));
assertEquals(mercury, bl.get(1));
assertEquals(venus, bl.get(2));
assertEquals(earth, bl.get(3));
assertEquals(mars, bl.get(4));
// check constructor of 'BodyLinkedList'
BodyLinkedList blCopy = new BodyLinkedList(bl);
assertNotEquals(bl, blCopy);
assertEquals(blCopy.pollFirst(), bl.pollFirst());
bl.addFirst(sun);
assertEquals(5, bl.size());
assertEquals(4, blCopy.size());
// check basic functions of 'BodyForceTreeMap'
BodyForceTreeMap bfm = new BodyForceTreeMap();
bfm.put(earth, earth.gravitationalForce(sun));
bfm.put(sun, sun.gravitationalForce(earth).plus(sun.gravitationalForce(venus)));
bfm.put(venus, venus.gravitationalForce(sun));
bfm.put(mars, mars.gravitationalForce(sun));
bfm.put(mercury, mercury.gravitationalForce(sun));
assertEquals(0, bfm.get(earth).distanceTo(earth.gravitationalForce(sun)));
assertEquals(0, bfm.get(sun).distanceTo(sun.gravitationalForce(earth).plus(sun.gravitationalForce(venus))));
assertEquals(0, bfm.put(earth, new Vector3(0, 0, 0)).distanceTo(earth.gravitationalForce(sun)));
assertEquals(0, bfm.get(mercury).distanceTo(mercury.gravitationalForce(sun)));
assertEquals(mercury.gravitationalForce(sun), bfm.get(mercury));
}
}