b401bc506ed6d4857ca70b1c268031ab1f1393ea
[sw/motorsim] / test / com / billkuker / rocketry / motorsim / test / MotorIOTest.java
1 package com.billkuker.rocketry.motorsim.test;\r
2 \r
3 import java.beans.PropertyVetoException;\r
4 import java.io.File;\r
5 \r
6 import javax.measure.unit.SI;\r
7 \r
8 import org.jscience.physics.amount.Amount;\r
9 import org.junit.Test;\r
10 \r
11 import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle;\r
12 import com.billkuker.rocketry.motorsim.CylindricalChamber;\r
13 import com.billkuker.rocketry.motorsim.Motor;\r
14 import com.billkuker.rocketry.motorsim.fuel.KNSU;\r
15 import com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain;\r
16 import com.billkuker.rocketry.motorsim.grain.MultiGrain;\r
17 import com.billkuker.rocketry.motorsim.io.MotorIO;\r
18 \r
19 public class MotorIOTest {\r
20 \r
21         @Test\r
22         public void testReadWrite() throws Exception {\r
23                 Motor m = new Motor();\r
24                 m.setName("IOTestMotor");\r
25                 m.setFuel(new KNSU());\r
26 \r
27                 CylindricalChamber c = new CylindricalChamber();\r
28                 c.setLength(Amount.valueOf(200, SI.MILLIMETER));\r
29                 c.setID(Amount.valueOf(30, SI.MILLIMETER));\r
30                 m.setChamber(c);\r
31 \r
32                 CoredCylindricalGrain g = new CoredCylindricalGrain();\r
33                 try {\r
34                         g.setLength(Amount.valueOf(70, SI.MILLIMETER));\r
35                         g.setOD(Amount.valueOf(29, SI.MILLIMETER));\r
36                         g.setID(Amount.valueOf(8, SI.MILLIMETER));\r
37                 } catch (PropertyVetoException v) {\r
38                         throw new Error(v);\r
39                 }\r
40 \r
41                 m.setGrain(new MultiGrain(g, 2));\r
42 \r
43                 ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
44                 n.setThroatDiameter(Amount.valueOf(7.9, SI.MILLIMETER));\r
45                 n.setExitDiameter(Amount.valueOf(9, SI.MILLIMETER));\r
46                 n.setEfficiency(.87);\r
47                 m.setNozzle(n);\r
48 \r
49                 File f = new File("MotorIOTest.xml");\r
50 \r
51                 MotorIO.writeMotor(m, f);\r
52 \r
53                 MotorIO.readMotor(f);\r
54 \r
55         }\r
56 }\r