1 package com.billkuker.rocketry.motorsim.test;
\r
3 import java.io.ByteArrayInputStream;
\r
4 import java.io.ByteArrayOutputStream;
\r
6 import javax.measure.quantity.Pressure;
\r
7 import javax.measure.unit.SI;
\r
9 import junit.framework.Assert;
\r
11 import org.jscience.physics.amount.Amount;
\r
12 import org.junit.Test;
\r
14 import com.billkuker.rocketry.motorsim.Fuel;
\r
15 import com.billkuker.rocketry.motorsim.RocketScience;
\r
16 import com.billkuker.rocketry.motorsim.fuel.editable.EditablePiecewiseLinearFuel;
\r
17 import com.billkuker.rocketry.motorsim.fuel.editable.EditablePiecewiseSaintRobertFuel;
\r
18 import com.billkuker.rocketry.motorsim.io.MotorIO;
\r
20 public class FuelIOTest {
\r
21 final Amount<Pressure> testPressure = Amount.valueOf(100, RocketScience.PSI);
\r
24 public void saveEPL() throws Exception{
\r
25 EditablePiecewiseLinearFuel f = new EditablePiecewiseLinearFuel();
\r
27 f.add(Amount.valueOf(100, RocketScience.PSI), Amount.valueOf(1, SI.METERS_PER_SECOND));
\r
28 ByteArrayOutputStream out = new ByteArrayOutputStream();
\r
29 MotorIO.writeFuel(f, out);
\r
30 String s = new String(out.toByteArray());
\r
31 System.out.println(s);
\r
33 Fuel f2 = MotorIO.readFuel(new ByteArrayInputStream(out.toByteArray()));
\r
34 Assert.assertTrue(f2 instanceof EditablePiecewiseLinearFuel);
\r
35 Assert.assertEquals(f2.getName(), "Test1");
\r
36 Assert.assertEquals(f.burnRate(testPressure), f2.burnRate(testPressure));
\r
40 public void saveEPSR() throws Exception{
\r
41 EditablePiecewiseSaintRobertFuel f = new EditablePiecewiseSaintRobertFuel();
\r
43 f.add(Amount.valueOf(100, RocketScience.PSI), 1,1);
\r
44 ByteArrayOutputStream out = new ByteArrayOutputStream();
\r
45 MotorIO.writeFuel(f, out);
\r
46 String s = new String(out.toByteArray());
\r
47 System.out.println(s);
\r
49 Fuel f2 = MotorIO.readFuel(new ByteArrayInputStream(out.toByteArray()));
\r
50 Assert.assertTrue(f2 instanceof EditablePiecewiseSaintRobertFuel);
\r
51 Assert.assertEquals(f2.getName(), "Test2");
\r
52 Assert.assertEquals(f.burnRate(testPressure), f2.burnRate(testPressure));
\r