package net.sf.openrocket.preset;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.motor.Manufacturer;
import net.sf.openrocket.rocketcomponent.Transition;
presetspec.put(ComponentPreset.TYPE, ComponentPreset.Type.NOSE_CONE);
ComponentPresetFactory.create(presetspec);
} catch ( InvalidComponentPresetException ex ) {
- assertTrue("Wrong Exception Thrown", ex.getMessage().contains("No Manufacturer specified"));
+ PresetAssertHelper.assertInvalidPresetException( ex,
+ new TypedKey<?>[] {
+ ComponentPreset.MANUFACTURER,
+ ComponentPreset.PARTNO,
+ ComponentPreset.LENGTH,
+ ComponentPreset.AFT_OUTER_DIAMETER,
+ ComponentPreset.SHAPE
+ },
+ new String[] {
+ "No Manufacturer specified",
+ "No PartNo specified",
+ "No Length specified",
+ "No AftOuterDiameter specified",
+ "No Shape specified"
+ }
+ );
}
}
presetspec.put( ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer("manufacturer"));
ComponentPresetFactory.create(presetspec);
} catch ( InvalidComponentPresetException ex ) {
- assertTrue("Wrong Exception Thrown", ex.getMessage().contains("No PartNo specified"));
+ PresetAssertHelper.assertInvalidPresetException( ex,
+ new TypedKey<?>[] {
+ ComponentPreset.PARTNO,
+ ComponentPreset.LENGTH,
+ ComponentPreset.AFT_OUTER_DIAMETER,
+ ComponentPreset.SHAPE
+ },
+ new String[] {
+ "No PartNo specified",
+ "No Length specified",
+ "No AftOuterDiameter specified",
+ "No Shape specified"
+ }
+ );
}
}
presetspec.put( ComponentPreset.PARTNO, "partno");
ComponentPresetFactory.create(presetspec);
} catch ( InvalidComponentPresetException ex ) {
- assertTrue("Wrong Exception Thrown", ex.getMessage().contains("No Length specified"));
+ PresetAssertHelper.assertInvalidPresetException( ex,
+ new TypedKey<?>[] {
+ ComponentPreset.LENGTH,
+ ComponentPreset.AFT_OUTER_DIAMETER,
+ ComponentPreset.SHAPE
+ },
+ new String[] {
+ "No Length specified",
+ "No AftOuterDiameter specified",
+ "No Shape specified"
+ }
+ );
}
}
presetspec.put( ComponentPreset.LENGTH, 2.0);
ComponentPresetFactory.create(presetspec);
} catch ( InvalidComponentPresetException ex ) {
- assertTrue("Wrong Exception Thrown", ex.getMessage().contains("No Shape"));
+ PresetAssertHelper.assertInvalidPresetException( ex,
+ new TypedKey<?>[] {
+ ComponentPreset.AFT_OUTER_DIAMETER,
+ ComponentPreset.SHAPE
+ },
+ new String[] {
+ "No AftOuterDiameter specified",
+ "No Shape specified"
+ }
+ );
}
}
presetspec.put( ComponentPreset.SHAPE, Transition.Shape.CONICAL);
ComponentPresetFactory.create(presetspec);
} catch ( InvalidComponentPresetException ex ) {
- assertTrue("Wrong Exception Thrown", ex.getMessage().contains("No AftOuterDiameter"));
+ PresetAssertHelper.assertInvalidPresetException( ex,
+ new TypedKey<?>[] {
+ ComponentPreset.AFT_OUTER_DIAMETER
+ },
+ new String[] {
+ "No AftOuterDiameter specified"
+ }
+ );
}
}
double density = 100.0 / volume;
assertEquals("NoseConeCustom",preset.get(ComponentPreset.MATERIAL).getName());
- // FIXME - I would expect the nc volume computation to be closer for such a simple shape.
- // simple math yields 47.74648
- // 100.0/nc.getComponentVolume yields 48.7159
- assertEquals(density,preset.get(ComponentPreset.MATERIAL).getDensity(),1.0);
+ // note - epsilon is 1% of the simple computation of density
+ assertEquals(density,preset.get(ComponentPreset.MATERIAL).getDensity(),0.01*density);
}
@Test
presetspec.put( ComponentPreset.LENGTH, 2.0);
presetspec.put( ComponentPreset.SHAPE, Transition.Shape.CONICAL);
presetspec.put( ComponentPreset.AFT_OUTER_DIAMETER, 2.0);
- presetspec.put( ComponentPreset.MATERIAL, new Material.Bulk("test", 2.0, true));
+ presetspec.put( ComponentPreset.MATERIAL, Material.newUserMaterial(Material.Type.BULK,"test", 2.0));
ComponentPreset preset = ComponentPresetFactory.create(presetspec);
assertEquals("test",preset.get(ComponentPreset.MATERIAL).getName());
presetspec.put( ComponentPreset.AFT_OUTER_DIAMETER, 2.0);
presetspec.put( ComponentPreset.FILLED, true);
presetspec.put( ComponentPreset.MASS, 100.0);
- presetspec.put( ComponentPreset.MATERIAL, new Material.Bulk("test", 2.0, true));
+ presetspec.put( ComponentPreset.MATERIAL, Material.newUserMaterial(Material.Type.BULK,"test", 2.0));
ComponentPreset preset = ComponentPresetFactory.create(presetspec);
// constants put into the presetspec above.
double density = 100.0 / volume;
assertEquals("test",preset.get(ComponentPreset.MATERIAL).getName());
- // FIXME - I would expect the nc volume computation to be closer for such a simple shape.
- assertEquals(density,preset.get(ComponentPreset.MATERIAL).getDensity(),1.5);
+ // note - epsilon is 1% of the simple computation of density
+ assertEquals(density,preset.get(ComponentPreset.MATERIAL).getDensity(),0.01*density);
}
}