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