Test organization
[sw/motorsim] / test / com / billkuker / rocketry / motorsim / test / ConvergentDivergentNozzleTest.java
1 package com.billkuker.rocketry.motorsim.test;\r
2 \r
3 import javax.measure.quantity.Area;\r
4 import javax.measure.quantity.Force;\r
5 import javax.measure.quantity.Pressure;\r
6 import javax.measure.unit.SI;\r
7 \r
8 import junit.framework.Assert;\r
9 \r
10 import org.jscience.physics.amount.Amount;\r
11 import org.junit.Test;\r
12 \r
13 import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle;\r
14 import com.billkuker.rocketry.motorsim.fuel.KNSU;\r
15 \r
16 public class ConvergentDivergentNozzleTest extends AbstractRocketTest {\r
17         \r
18         ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
19         \r
20         {\r
21                 n.setThroatDiameter(Amount.valueOf(6.6, SI.MILLIMETER));\r
22                 n.setExitDiameter(Amount.valueOf(20.87, SI.MILLIMETER));\r
23                 n.setEfficiency(0.85);\r
24         }\r
25 \r
26         @Test\r
27         public void testThroatArea() {\r
28                 Amount<Area> a = n.throatArea().to(SI.MILLIMETER.pow(2).asType(Area.class));\r
29                 assertApproximate(Amount.valueOf(34.2, .1, SI.MILLIMETER.pow(2)), a);\r
30         }\r
31 \r
32         @Test\r
33         public void testExitArea() {\r
34                 Amount<Area> a = n.exitArea();\r
35                 assertApproximate(Amount.valueOf(342, .1, SI.MILLIMETER.pow(2)), a);\r
36         }\r
37 \r
38         @Test\r
39         public void testThrust() {\r
40                 Amount<Pressure> Patm = Amount.valueOf(101000, SI.PASCAL);\r
41                 Amount<Pressure> Po = Amount.valueOf(2046491, SI.PASCAL);\r
42                 Amount<Pressure> Pe = Patm;\r
43 \r
44                 KNSU f = new KNSU();\r
45                 \r
46                 Amount<Force> t = n.thrust(Po, Pe, Patm, f.getCombustionProduct().getRatioOfSpecificHeats2Phase());\r
47                 \r
48                 Amount<Force> expected = Amount.valueOf(87.2, .1, SI.NEWTON);\r
49                 \r
50                 assertApproximate(t, expected);\r
51         }\r
52 \r
53         @Test\r
54         public void testThrustCoefficient() {\r
55                 Amount<Pressure> Patm = Amount.valueOf(101000, SI.PASCAL);\r
56                 Amount<Pressure> Po = Amount.valueOf(2046491, SI.PASCAL);\r
57                 Amount<Pressure> Pe = Patm;\r
58 \r
59                 KNSU f = new KNSU();\r
60                 \r
61                 double cF = n.thrustCoefficient(Po, Pe, Patm, f.getCombustionProduct().getRatioOfSpecificHeats2Phase());\r
62                 \r
63                 \r
64                 Assert.assertEquals(cF, 1.2454812344324655);\r
65         }\r
66 \r
67 }\r