1 package net.sf.openrocket.rocketcomponent;
3 import static org.junit.Assert.assertFalse;
4 import static org.junit.Assert.assertTrue;
5 import static org.junit.Assert.fail;
8 import java.util.Iterator;
10 import net.sf.openrocket.gui.util.ColorConversion;
11 import net.sf.openrocket.util.Coordinate;
12 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
14 import org.junit.Test;
16 public class ComponentCompareTest extends BaseTestCase {
19 public void testComponentEquality() {
21 System.out.println("TEST CLASSPATH: " + System.getProperty("java.class.path"));
23 Rocket r1 = net.sf.openrocket.util.TestRockets.makeBigBlue();
24 Rocket r2 = net.sf.openrocket.util.TestRockets.makeBigBlue();
26 Iterator<RocketComponent> i1 = r1.iterator(true);
27 Iterator<RocketComponent> i2 = r2.iterator(true);
28 while (i1.hasNext()) {
29 assertTrue(i2.hasNext());
31 RocketComponent c1 = i1.next();
32 RocketComponent c2 = i2.next();
34 ComponentCompare.assertEquality(c1, c2);
35 ComponentCompare.assertSimilarity(c1, c2);
37 assertFalse(i2.hasNext());
40 ComponentCompare.assertDeepEquality(r1, r2);
41 ComponentCompare.assertDeepSimilarity(r1, r2, false);
44 r1.setColor(ColorConversion.fromAwtColor(Color.YELLOW));
46 ComponentCompare.assertEquality(r1, r2);
48 } catch (AssertionError e) {
53 i1 = r1.iterator(true);
54 i2 = r2.iterator(true);
55 boolean finsetfound = false;
56 while (i1.hasNext()) {
57 RocketComponent c1 = i1.next();
58 RocketComponent c2 = i2.next();
60 if (c1 instanceof FinSet) {
62 FinSet f1 = (FinSet)c1;
63 f1.setTabHeight(0.001);
66 ComponentCompare.assertEquality(c1, c2);
68 } catch (AssertionError e) {
73 assertTrue(finsetfound);
78 public void testComponentSimilarity() throws IllegalFinPointException {
79 FinSet trap = new TrapezoidFinSet(
85 FinSet free = new FreeformFinSet(new Coordinate[] {
93 ComponentCompare.assertSimilarity(trap, free, true);
96 ComponentCompare.assertSimilarity(trap, free);
98 } catch (AssertionError e) {
102 free.setName(trap.getName());
103 ComponentCompare.assertSimilarity(trap, free);
106 ComponentCompare.assertEquality(trap, free);
108 } catch (AssertionError e) {
113 BodyTube t1 = new BodyTube();
114 BodyTube t2 = new BodyTube();
118 ComponentCompare.assertDeepSimilarity(t1, t2, false);
121 ComponentCompare.assertDeepEquality(t1, t2);
123 } catch (AssertionError e) {
127 t1.addChild(new TrapezoidFinSet());
130 ComponentCompare.assertDeepSimilarity(t1, t2, true);
132 } catch (AssertionError e) {