1 package com.billkuker.rocketry.motorsim.test;
\r
3 import java.awt.geom.Area;
\r
4 import java.awt.geom.Ellipse2D;
\r
5 import java.awt.geom.Rectangle2D;
\r
7 import org.jscience.physics.amount.Amount;
\r
8 import org.junit.Test;
\r
10 import com.billkuker.rocketry.motorsim.grain.util.ShapeUtil;
\r
13 public class ShapeUtilTest extends RocketTest{
\r
15 Area tenByTen = new Area(new Rectangle2D.Double(-5, -5, 10, 10));
\r
16 Area oneByOne = new Area(new Rectangle2D.Double(-.5, -.5, 1, 1));
\r
17 Area twoByTwoFar = new Area( new Rectangle2D.Double(30,30,2,2));
\r
19 Area r2Circle = new Area(new Ellipse2D.Double(-2,-2,4,4));
\r
22 Amount<javax.measure.quantity.Area> diff = Amount.valueOf(.01, sqMM);
\r
25 public void testArea(){
\r
26 assertApproximate(ShapeUtil.area(tenByTen), Amount.valueOf(100, sqMM));
\r
27 assertApproximate(ShapeUtil.area(oneByOne), Amount.valueOf(1, sqMM));
\r
28 assertApproximate(ShapeUtil.area(twoByTwoFar), Amount.valueOf(4, sqMM));
\r
29 assertApproximate(ShapeUtil.area(r2Circle), Amount.valueOf(4*Math.PI, sqMM), diff);
\r
31 Area a = new Area(tenByTen);
\r
32 a.subtract(oneByOne);
\r
34 assertApproximate(ShapeUtil.area(a), ShapeUtil.area(tenByTen).minus(ShapeUtil.area(oneByOne)));
\r
38 assertApproximate(ShapeUtil.area(a),
\r
39 ShapeUtil.area(tenByTen)
\r
40 .minus(ShapeUtil.area(oneByOne))
\r
41 .plus(ShapeUtil.area(twoByTwoFar)));
\r
43 a = new Area(tenByTen);
\r
44 a.subtract(r2Circle);
\r
46 assertApproximate(ShapeUtil.area(a), ShapeUtil.area(tenByTen).minus(ShapeUtil.area(r2Circle)));
\r