public override string ToString()
{
var positiveDir = IsClockwisePositive ? "clockwise" : "counterclockwise";
var unitsPerTurn = Math.Abs(UnitsPerCounterClockwiseTurn);
var unit = Math.Abs(unitsPerTurn - RadiansPerRotation) <= 0.000001 ? "Radians"
: Math.Abs(unitsPerTurn - DegreesPerRotation) <= 0.000001 ? "Degrees"
: Math.Abs(unitsPerTurn - GradiansPerRotation) <= 0.000001 ? "Gradians"
: Math.Abs(unitsPerTurn - 1) <= 0.000001 ? "Turns"
: String.Format("{0:0.###}/Turn", unitsPerTurn);
return String.Format(
"Unit: {0} ({1}), Zero: {2}",
unit,
positiveDir,
Dir.FromNaturalAngle(_origin));
}