import com.billkuker.rocketry.motorsim.test.ConvergentDivergentNozzleTest;\r
import com.billkuker.rocketry.motorsim.test.CoredCylindricalGrainTest;\r
import com.billkuker.rocketry.motorsim.test.CylindricalChamberTest;\r
+import com.billkuker.rocketry.motorsim.test.FuelIOTest;\r
import com.billkuker.rocketry.motorsim.test.KNSUTest;\r
import com.billkuker.rocketry.motorsim.test.MotorIOTest;\r
import com.billkuker.rocketry.motorsim.test.RocketScienceTest;\r
@RunWith(Suite.class)\r
@SuiteClasses({ ConvergentDivergentNozzleTest.class,\r
CoredCylindricalGrainTest.class, CylindricalChamberTest.class,\r
- KNSUTest.class, MotorIOTest.class, ShapeUtilTest.class, RocketScienceTest.class })\r
+ KNSUTest.class, MotorIOTest.class, ShapeUtilTest.class,\r
+ RocketScienceTest.class, FuelIOTest.class })\r
public class UnitTests {\r
\r
}\r
--- /dev/null
+package com.billkuker.rocketry.motorsim.test;\r
+\r
+import java.io.ByteArrayInputStream;\r
+import java.io.ByteArrayOutputStream;\r
+\r
+import javax.measure.quantity.Pressure;\r
+import javax.measure.unit.SI;\r
+\r
+import junit.framework.Assert;\r
+\r
+import org.jscience.physics.amount.Amount;\r
+import org.junit.Test;\r
+\r
+import com.billkuker.rocketry.motorsim.Fuel;\r
+import com.billkuker.rocketry.motorsim.RocketScience;\r
+import com.billkuker.rocketry.motorsim.fuel.SaintRobertFuel;\r
+import com.billkuker.rocketry.motorsim.fuel.editable.EditablePiecewiseLinearFuel;\r
+import com.billkuker.rocketry.motorsim.fuel.editable.EditablePiecewiseSaintRobertFuel;\r
+import com.billkuker.rocketry.motorsim.io.MotorIO;\r
+\r
+public class FuelIOTest {\r
+ final Amount<Pressure> testPressure = Amount.valueOf(100, RocketScience.PSI);\r
+\r
+ @Test\r
+ public void saveEPL() throws Exception{\r
+ EditablePiecewiseLinearFuel f = new EditablePiecewiseLinearFuel();\r
+ f.setName("Test1");\r
+ f.add(Amount.valueOf(100, RocketScience.PSI), Amount.valueOf(1, SI.METERS_PER_SECOND));\r
+ ByteArrayOutputStream out = new ByteArrayOutputStream();\r
+ MotorIO.writeFuel(f, out);\r
+ String s = new String(out.toByteArray());\r
+ System.out.println(s);\r
+ \r
+ Fuel f2 = MotorIO.readFuel(new ByteArrayInputStream(out.toByteArray()));\r
+ Assert.assertTrue(f2 instanceof EditablePiecewiseLinearFuel);\r
+ Assert.assertEquals(f2.getName(), "Test1");\r
+ Assert.assertEquals(f.burnRate(testPressure), f2.burnRate(testPressure));\r
+ }\r
+ \r
+ @Test\r
+ public void saveEPSR() throws Exception{\r
+ EditablePiecewiseSaintRobertFuel f = new EditablePiecewiseSaintRobertFuel();\r
+ f.setName("Test2");\r
+ f.add(Amount.valueOf(100, RocketScience.PSI), 1,1);\r
+ ByteArrayOutputStream out = new ByteArrayOutputStream();\r
+ MotorIO.writeFuel(f, out);\r
+ String s = new String(out.toByteArray());\r
+ System.out.println(s);\r
+ \r
+ Fuel f2 = MotorIO.readFuel(new ByteArrayInputStream(out.toByteArray()));\r
+ Assert.assertTrue(f2 instanceof EditablePiecewiseSaintRobertFuel);\r
+ Assert.assertEquals(f2.getName(), "Test2");\r
+ Assert.assertEquals(f.burnRate(testPressure), f2.burnRate(testPressure));\r
+ }\r
+}\r