package pedersen.physics;
import junit.framework.TestCase;
import pedersen.core.Constraints;
public class StaticHeadingImplTest extends TestCase
{
public void testGetHeading()
{
double rawHeading1 = Math.PI * 0.5;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
assertEquals( "Heading discrepancy.", rawHeading1, heading.getHeading(), Constraints.doubleErrorTolerance );
}
public void testEqualsAngleWithDoubleForPositiveMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 2.5;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
assertTrue( "Heading discrepancy.", heading.equalsAngle( rawHeading2 ) );
}
public void testEqualsAngleWithDoubleForNegativeMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * -1.5;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
assertTrue( "Heading discrepancy.", heading.equalsAngle( rawHeading2 ) );
}
public void testEqualsAngleWithDoubleForMismatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.3;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
assertFalse( "Heading discrepancy.", heading.equalsAngle( rawHeading2 ) );
}
public void testEqualsAngleWithStaticHeadingForPositiveMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 2.5;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
assertTrue( "Heading discrepancy.", heading1.equalsAngle( heading2 ) );
}
public void testEqualsAngleWithStaticHeadingForNegativeMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * -1.5;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
assertTrue( "Heading discrepancy.", heading1.equalsAngle( heading2 ) );
}
public void testEqualsAngleWithStaticHeadingForMismatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.3;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
assertFalse( "Heading discrepancy.", heading1.equalsAngle( heading2 ) );
}
public void testGetRelativeAngleWithDoubleForPositiveMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.9;
double rawHeading3 = Math.PI * 0.4;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
double relativeHeading = heading.getRelativeAngle( rawHeading2 );
assertEquals( "Heading discrepancy.", relativeHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetRelativeAngleWithDoubleForNegativeMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.1;
double rawHeading3 = Math.PI * -0.4;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
double relativeHeading = heading.getRelativeAngle( rawHeading2 );
assertEquals( "Heading discrepancy.", relativeHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetRelativeAngleWithDoubleForMismatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.3;
double rawHeading3 = Math.PI * 0.4;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
double relativeHeading = heading.getRelativeAngle( rawHeading2 );
assertFalse( "Heading discrepancy.", Constraints.areEqual( relativeHeading, rawHeading3 ) );
}
public void testGetRelativeAngleWithStaticHeadingForPositiveMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.9;
double rawHeading3 = Math.PI * 0.4;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
double relativeHeading = heading1.getRelativeAngle( heading2 );
assertEquals( "Heading discrepancy.", relativeHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetRelativeAngleWithStaticHeadingForNegativeMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.1;
double rawHeading3 = Math.PI * -0.4;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
double relativeHeading = heading1.getRelativeAngle( heading2 );
assertEquals( "Heading discrepancy.", relativeHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetRelativeAngleWithStaticHeadingForMismatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.3;
double rawHeading3 = Math.PI * 0.4;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
double relativeHeading = heading1.getRelativeAngle( heading2 );
assertFalse( "Heading discrepancy.", Constraints.areEqual( relativeHeading, rawHeading3 ) );
}
public void testGetCompoundAngleWithDoubleForPositiveMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.9;
double rawHeading3 = Math.PI * 1.4;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
double compoundHeading = heading.getCompoundAngle( rawHeading2 );
assertEquals( "Heading discrepancy.", compoundHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetCompoundAngleWithDoubleForNegativeMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * -0.9;
double rawHeading3 = Math.PI * 1.6;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
double compoundHeading = heading.getCompoundAngle( rawHeading2 );
assertEquals( "Heading discrepancy.", compoundHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetCompoundAngleWithDoubleForMismatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.3;
double rawHeading3 = Math.PI * 0.4;
StaticHeading heading = new StaticHeadingImpl( rawHeading1 );
double compoundHeading = heading.getCompoundAngle( rawHeading2 );
assertFalse( "Heading discrepancy.", Constraints.areEqual( compoundHeading, rawHeading3 ) );
}
public void testGetCompoundAngleWithStaticHeadingForPositiveMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.9;
double rawHeading3 = Math.PI * 1.4;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
double compoundHeading = heading1.getCompoundAngle( heading2 );
assertEquals( "Heading discrepancy.", compoundHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetCompoundAngleWithStaticHeadingForNegativeMatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * -0.9;
double rawHeading3 = Math.PI * 1.6;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
double compoundHeading = heading1.getCompoundAngle( heading2 );
assertEquals( "Heading discrepancy.", compoundHeading, rawHeading3, Constraints.doubleErrorTolerance );
}
public void testGetCompoundAngleWithStaticHeadingForMismatch()
{
double rawHeading1 = Math.PI * 0.5;
double rawHeading2 = Math.PI * 0.3;
double rawHeading3 = Math.PI * 0.4;
StaticHeading heading1 = new StaticHeadingImpl( rawHeading1 );
StaticHeading heading2 = new StaticHeadingImpl( rawHeading2 );
double compoundHeading = heading1.getCompoundAngle( heading2 );
assertFalse( "Heading discrepancy.", Constraints.areEqual( compoundHeading, rawHeading3 ) );
}
}