]> git.gag.com Git - debian/openrocket/commitdiff
My assessment of why IntegrationTest was failing was incorrect. After perusing the...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 23 May 2012 14:23:01 +0000 (14:23 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 23 May 2012 14:23:01 +0000 (14:23 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@713 180e2498-e6e9-4542-8430-84ac67f01cd8

core/test/net/sf/openrocket/IntegrationTest.java
core/test/net/sf/openrocket/rocketcomponent/SymmetricComponentVolumeTest.java

index ef41c0caddb3a2bd34e7f66fdb05c06eb5e6e1ed..b06a6c34cf155a0553d68747ea01a957f2738eb4 100644 (file)
@@ -105,8 +105,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Compute cg+cp + altitude
-               checkCgCp(0.238, 0.0678, 0.320, 12.0);
-               checkAlt(44.2);
+               checkCgCp(0.248, 0.0645, 0.320, 12.0);
+               checkAlt(48.2);
                
                
                // Mass modification
@@ -117,8 +117,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.223, 0.0778, 0.320, 12.0);
-               checkAlt(34.2);
+               checkCgCp(0.230, 0.0745, 0.320, 12.0);
+               checkAlt(37.2);
                
                
                // Non-change
@@ -134,7 +134,7 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp
-               checkCgCp(0.223, 0.0778, 0.320, 12.0);
+               checkCgCp(0.230, 0.0745, 0.320, 12.0);
                
                
                // Aerodynamic modification
@@ -156,8 +156,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.223, 0.0778, 0.320, 12.0);
-               checkAlt(34.0);
+               checkCgCp(0.230, 0.0745, 0.320, 12.0);
+               checkAlt(37.2);
                
                
                // Undo "Name change" change
@@ -167,7 +167,7 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp
-               checkCgCp(0.223, 0.0778, 0.320, 12.0);
+               checkCgCp(0.230, 0.0745, 0.320, 12.0);
                
                
                // Undo "Modify mass" change
@@ -177,8 +177,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.238, 0.0678, 0.320, 12.0);
-               checkAlt(44.3);
+               checkCgCp(0.248, 0.0645, 0.320, 12.0);
+               checkAlt(48.2);
                
                
                // Redo "Modify mass" change
@@ -188,8 +188,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.223, 0.0778, 0.320, 12.0);
-               checkAlt(34.3);
+               checkCgCp(0.230, 0.0745, 0.320, 12.0);
+               checkAlt(37.2);
                
                
                // Mass modification
@@ -200,8 +200,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.216, 0.0828, 0.320, 12.0);
-               checkAlt(30.2);
+               checkCgCp(0.223, 0.0795, 0.320, 12.0);
+               checkAlt(32.7);
                
                
                // Perform component movement
@@ -219,8 +219,9 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.215, 0.0830, 0.320, 12.0);
-               checkAlt(30.2);
+               checkCgCp(0.221, 0.0797, 0.320, 12.0);
+               checkAlt(32.7);
+               
                
                // Modify mass without setting undo description
                massComponent().setComponentMass(0.020);
@@ -228,8 +229,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.209, 0.088, 0.320, 12.0);
-               checkAlt(26.8);
+               checkCgCp(0.215, 0.0847, 0.320, 12.0);
+               checkAlt(29.0);
                
                
                // Undo "Modify mass2" change
@@ -239,8 +240,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.215, 0.0830, 0.320, 12.0);
-               checkAlt(30.2);
+               checkCgCp(0.221, 0.0797, 0.320, 12.0);
+               checkAlt(32.7);
                
                
                // Undo "Move component" change
@@ -250,8 +251,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.216, 0.0828, 0.320, 12.0);
-               checkAlt(30.4);
+               checkCgCp(0.223, 0.0795, 0.320, 12.0);
+               checkAlt(32.7);
                
                
                // Redo "Move component" change
@@ -261,8 +262,8 @@ public class IntegrationTest extends BaseTestCase {
                
                
                // Check cg+cp + altitude
-               checkCgCp(0.215, 0.0830, 0.320, 12.0);
-               checkAlt(30.2);
+               checkCgCp(0.221, 0.0797, 0.320, 12.0);
+               checkAlt(32.7);
                
                
        }
index e539a84ea7414d88eee749ee4dd6bb2a8822bef1..b1444548628168a6cb7996a7a2120129699d3756 100644 (file)
@@ -2,6 +2,7 @@ package net.sf.openrocket.rocketcomponent;
 
 import static org.junit.Assert.assertEquals;
 import net.sf.openrocket.material.Material;
+import net.sf.openrocket.util.Coordinate;
 import net.sf.openrocket.util.BaseTestCase.BaseTestCase;
 
 import org.junit.Test;
@@ -21,7 +22,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setAftRadius(1.0);
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
                
                double volume = Math.PI / 3.0;
                
@@ -31,6 +33,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 0.75, cg.x, epsilonPercent * 0.75 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -49,8 +55,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setAftShoulderThickness(1.0);
                nc.setMaterial( new Material.Bulk("test",density,true));
 
-               
-               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
 
                double volume = Math.PI / 3.0;
                volume += Math.PI;
@@ -61,6 +67,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
 
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 1.312, cg.x, epsilonPercent * 1.071 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -76,8 +86,9 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setType( Transition.Shape.CONICAL );
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
-               
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
+
                double volume = Math.PI / 3.0;  // outer volume
                
                // manually projected Thickness of 0.5 on to radius to determine
@@ -94,6 +105,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 0.7454, cg.x, epsilonPercent * 0.7454 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -112,8 +127,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setAftShoulderThickness(0.5);
                nc.setMaterial( new Material.Bulk("test",density,true));
 
-               
-               System.out.println( nc.getComponentVolume() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
 
                double volume = Math.PI / 3.0;  // outer volume
 
@@ -134,6 +149,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 1.2719, cg.x, epsilonPercent * 1.2719 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -150,8 +169,9 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setAftRadius(2.0);
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
-               
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
+
                double volume = Math.PI / 3.0 * (2.0*2.0 + 2.0 * 1.0 + 1.0 * 1.0) * 4.0;
                
                double mass = density * volume; 
@@ -160,6 +180,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 2.4285, cg.x, epsilonPercent * 2.4285 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -182,8 +206,9 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setForeShoulderThickness(1.0);
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
-               
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
+
                double volume = Math.PI / 3.0 * (2.0*2.0 + 2.0 * 1.0 + 1.0 * 1.0) * 4.0;
                // plus aft shoulder:
                volume += Math.PI * 1.0 * 2.0 * 2.0;
@@ -196,6 +221,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 2.8023, cg.x, epsilonPercent * 2.8023 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -212,7 +241,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setThickness(0.5);
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
 
                // Volume of filled transition = 
                double filledVolume = Math.PI /3.0 * ( 1.0*1.0 + 1.0 * 0.5 + 0.5 * 0.5 ) * 1.0;
@@ -237,6 +267,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 0.5884, cg.x, epsilonPercent * 0.5884 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -259,7 +293,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setForeShoulderThickness(0.5);  // note this means fore shoulder is filled.
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
 
                // Volume of filled transition = 
                double filledVolume = Math.PI /3.0 * ( 1.0*1.0 + 1.0 * 0.5 + 0.5 * 0.5 ) * 1.0;
@@ -289,6 +324,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 0.8581, cg.x, epsilonPercent * 0.8581 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -305,7 +344,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                nc.setThickness(0.25);
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
 
                // Volume of filled transition = 
                double filledVolume = Math.PI /3.0 * ( 1.0*1.0 + 1.0 * 0.5 + 0.5 * 0.5 ) * 1.0;
@@ -330,6 +370,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 0.56827, cg.x, epsilonPercent * 0.56827 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
        @Test
@@ -353,7 +397,8 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                nc.setMaterial( new Material.Bulk("test",density,true));
                
-               System.out.println( nc.getComponentVolume() );
+               System.out.println( nc.getComponentVolume() + "\t" + nc.getMass());
+               System.out.println(nc.getCG());
 
                // Volume of filled transition = 
                double filledVolume = Math.PI /3.0 * ( 1.0*1.0 + 1.0 * 0.5 + 0.5 * 0.5 ) * 1.0;
@@ -384,6 +429,10 @@ public class SymmetricComponentVolumeTest extends BaseTestCase {
                
                assertEquals( volume, nc.getComponentVolume(), epsilonPercent * volume);
                assertEquals( mass, nc.getMass(), epsilonPercent * mass );
+               Coordinate cg = nc.getCG();
+               
+               assertEquals( 0.7829, cg.x, epsilonPercent * 0.7829 );
+               assertEquals( mass, cg.weight, epsilonPercent * mass);
        }
 
 }