class AngleTester
{
private AngleTester() { throw new UnsupportedOperationException(); }
private static void test4(Angle original, Angle transformed, String transformation)
{
System.out.print(transformation + ": ");
System.out.print(transformed);
System.out.print(". Coterminal? ");
System.out.println(original.isCoterminalWith(transformed));
}
private static void test3(Angle a)
{
test4(a, a.toReducedAngle(), "Reduced Angle");
test4(a, a.toReferenceAngle(), "Reference Angle");
test4(a, a.toComplement(), "Complement");
test4(a, a.toSupplement(), "Supplement");
}
private static void test2(Angle a)
{
System.out.print("\n" + a.toString() + " is ");
Angle[] angles = {new Degrees(a), new Radians(a), new Zygo(a)};
for(Angle angle : angles) System.out.print(angle.toString() + ", ");
System.out.println("...");
test3(a);
}
private static void test1(double val)
{
System.out.println("Value: " + val);
Angle [] angles = {new Degrees(val), new Radians(val), new Zygo(val)};
for (Angle a : angles) test2(a);
}
public static void test(double val)
{
test1(val);
System.out.println();
}
}
public class AngularMeasurements
{
private AngularMeasurements() { throw new UnsupportedOperationException(); }
public static void main(String[] args)
{
double tau = 2 * Math.PI;
double rand = Math.random() * 10000 - 5000;
double values[] = {-370, -3.6, 0, 3.6, tau, 90.0, 100, 180.0, 350, 360.0, 370.0, rand};
for (double value : values) AngleTester.test(value);
}
}