{"push_id":616628963,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"3a696d5a78061f6e6ff09b6b41ea2e8223822eae","before":"72bd5554cc4586eec310ecddd4f003abb6d69621","commits":[{"sha":"3a696d5a78061f6e6ff09b6b41ea2e8223822eae","author":{"email":"58011ba349a93b5706e9bb2ee20ccea5c15cb12d@linux.com","name":"Joe Amenta"},"message":"Massive cleanup.\n- All source code files use consistent 4-space tabs.\n- Other surface-level stuff that doesn't affect any functionality.\n- All names that describe values with implicit units now specify what those units are.  Example: \"distance\" is now \"distanceMeters\".\n  - Exception: the \"tolerance\" parameter added to a few GeodeticCalculator methods does not; all overloads that include this parameter are internal, though.\n  - Not an exception: an ellipsoid's \"flattening\" parameter is unitless (\"meters per meter\", similar to radians).\n- All value types are now immutable.\n- All value types now implement IEquatable<T> and equality operators.\n- All value types now implement ToString() consistently (albeit verbosely)\n- All value types that implemented IComparable<T> now also implement IComparable and comparison operators.\n- All value types that were [Serializable] (which was all of them) now do so via ISerializable.  This breaks deserialization of anything using an older version of the library, but this is the last time that should happen.\n- Value-type fields of all value types are no longer readonly, for a slight performance boost without affecting reliability.\n- All value types now implement GetHashCode using a standard combinator method.  Further research is required to determine whether this is actually better (or worse!) than the old methods.\n- Angle's backing store is now radians instead of degrees, to theoretically improve precision with no known downsides.\n- Angle's constructors are now all private.  Static methods on Angle (which now include FromRadians, FromDegrees, and DMS ones as well) must be used to externally create Angle instances.\n- Added the concept of NaN to Angle.\n- Angle.Abs is now static, to mirror Math.Abs.\n- Got rid of the old TestingUtils.AreEqualWithinTolerance method (inlined it), which produced an unhelpful error message on failure.\n- Added TestingUtils.AssertEqualityWithinExtremeTolerance, which asserts that two double-precision floating-point values are extremely close to one another (there can be no more than 6 possible double-precision floating-point values between them on the number line).\n- Started using TestingUtils.AssertEqualityWithinExtremeTolerance where it made sense to expect absolute minimum levels of difference between the expectations and reality.\n- Got rid of some old test cases that seemed no longer necessary after making all value types immutable.","distinct":true,"url":"https://api.github.com/repos/airbreather/Gavaghan.Geodesy/commits/3a696d5a78061f6e6ff09b6b41ea2e8223822eae"}]}