Added more builtin inverse conversion functions

Added builtin functions to convert between degrees, minutes and
    seconds and degrees under the config("mod") round rules:

	dms2d(d, m, s [,rnd]) - convert deg, min, and secs to deg
	dm2d(d, m [,rnd]) - convert deg, min to deg

	See help/dms2d and help/dm2d.

    Example:

	; print dms2d(12, 20, 44.16);
	12.3456

	; print dm2d(3601, -25.5594);
	0.57401

    Added builtin functions to convert between gradians, minutes and
    seconds and gradians under the config("mod") round rules:

	gms2g(g, m, s [,rnd]) - convert grad, min, and secs to grad
	gm2g(g, m [,rnd]) - convert grad and min to grad

	See help/g2gms and help/g2gm.

    Example:

	; print gms2g(12, 20, 44.16);
	12.3456

	; print gm2g(4001, -25.5594);
	0.57401

    Added builtin functions to convert between hours, minutes and
    seconds and hours under the config("mod") round rules:

	hms2h(h, m, s [,rnd]) - convert hours, min, and secs to hours
	hm2h(h, m [,rnd]) - convert hours, min to hours

	See help/hms2h and help/hm2h.

    Example:

	; print hms2h(12, 20, 44.16);
	12.3456

	; print hm2h(241, -25.5594);
	0.57401
This commit is contained in:
Landon Curt Noll
2021-09-27 02:14:18 -07:00
parent d5de36841a
commit ada15fdabc
10 changed files with 833 additions and 8 deletions

View File

@@ -8563,7 +8563,115 @@ define test_functions3()
vrfy(m == -40.74,
'9213: m == -40.74');
print '9214: Ending test_functions3';
/* dm2d */
vrfy(dm2d(203, 325.5594) == 208.42599,
'9214: dm2d(203, 325.5594) == 208.42599');
vrfy(dm2d(3601, -25.5594) == 0.57401,
'9215: dm2d(3601, -25.5594) == 0.57401');
vrfy(dm2d(-923, -25.5594) == 156.57401,
'9216: dm2d(-923, -25.5594) == 156.57401');
vrfy(dm2d(203, 325.5594, 1) == -151.57401,
'9217: dm2d(203, 325.5594, 1) == -151.57401');
vrfy(d2dm(dm2d(12, 20.16),d,m) == 12.336,
'9218: d2dm(dm2d(12, 20.16),d,m) == 12.336');
vrfy(d == 12,
'9219: d == 12');
vrfy(m == 20.16,
'9220: m == 20.16');
/* dms2d */
vrfy(dms2d(12, 20, 44.16) == 12.3456,
'9221: dms2d(12, 20, 44.16) == 12.3456');
vrfy(dms2d(123.456, -345.68, 4.08) == 117.6958,
'9222: dms2d(123.456, -345.68, 4.08) == 117.6958');
vrfy(dms2d(-65, -40, -44.4) == 294.321,
'9223: dms2d(-65, -40, -44.4) == 294.321');
vrfy(dms2d(12, 20, 44.16, 1) == -347.6544,
'9224: dms2d(12, 20, 44.16, 1) == -347.6544');
vrfy(d2dms(dms2d(13, 20, 44.16),d,m,s) == 13.3456,
'9225: d2dms(dms2d(13, 20, 44.16),d,m,s) == 13.3456');
vrfy(d == 13,
'9226: d == 13');
vrfy(m == 20,
'9227: m == 20');
vrfy(s == 44.16,
'9228: s == 44.16');
/* gm2g */
vrfy(gm2g(203, 325.5594) == 208.42599,
'9229: gm2g(203, 325.5594) == 208.42599');
vrfy(gm2g(3601, -25.5594) == 0.57401,
'9230: gm2g(3601, -25.5594) == 0.57401');
vrfy(gm2g(-923, -25.5594) == 276.57401,
'9231: gm2g(-923, -25.5594) == 276.57401');
vrfy(gm2g(203, 325.5594, 1) == -191.57401,
'9232: gm2g(203, 325.5594, 1) == -191.57401');
vrfy(g2gm(gm2g(12, 20.16),g,m) == 12.336,
'9233: g2gm(gm2g(12, 20.16),g,m) == 12.336');
vrfy(g == 12,
'9234: g == 12');
vrfy(m == 20.16,
'9235: m == 20.16');
/* gms2g */
vrfy(gms2g(12, 20, 44.16) == 12.3456,
'9236: gms2g(12, 20, 44.16) == 12.3456');
vrfy(gms2g(123.456, -345.68, 4.08) == 117.6958,
'9237: gms2g(123.456, -345.68, 4.08) == 117.6958');
vrfy(gms2g(-65, -40, -44.4) == 334.321,
'9238: gms2g(-65, -40, -44.4) == 334.321');
vrfy(gms2g(12, 20, 44.16, 1) == -387.6544,
'9239: gms2g(12, 20, 44.16, 1) == -387.6544');
vrfy(g2gms(gms2g(14, 20, 44.16),g,m,s) == 14.3456,
'9240: g2gms(gms2g(14, 20, 44.16),g,m,s) == 14.3456');
vrfy(g == 14,
'9241: g == 14');
vrfy(m == 20,
'9242: m == 20');
vrfy(s == 44.16,
'9243: s == 44.16');
/* hm2h */
vrfy(hm2h(203, 325.5594) == 16.42599,
'9244: hm2h(203, 325.5594) == 16.42599');
vrfy(hm2h(241, -25.5594) == 0.57401,
'9245: hm2h(241, -25.5594) == 0.57401');
vrfy(hm2h(-923, -25.5594) == 12.57401,
'9246: hm2h(-923, -25.5594) == 12.57401');
vrfy(hm2h(203, 325.5594, 1) == -7.57401,
'9247: hm2h(203, 325.5594, 1) == -7.57401');
vrfy(h2hm(hm2h(12, 20.16),h,m) == 12.336,
'9248: h2hm(hm2h(12, 20.16),h,m) == 12.336');
vrfy(h == 12,
'9249: h == 12');
vrfy(m == 20.16,
'9250: m == 20.16');
/* hms2h */
vrfy(hms2h(12, 20, 44.16) == 12.3456,
'9251: hms2h(12, 20, 44.16) == 12.3456');
vrfy(hms2h(123.456, -345.68, 4.08) == 21.6958,
'9252: hms2h(123.456, -345.68, 4.08) == 21.6958');
vrfy(hms2h(-65, -40, -44.4) == 6.321,
'9253: hms2h(-65, -40, -44.4) == 6.321');
vrfy(hms2h(12, 20, 44.16, 1) == -11.6544,
'9254: hms2h(12, 20, 44.16, 1) == -11.6544');
vrfy(h2hms(hms2h(15, 20, 44.16),h,m,s) == 15.3456,
'9255: h2hms(hms2h(15, 20, 44.16),h,m,s) == 15.3456');
vrfy(h == 15,
'9256: h == 15');
vrfy(m == 20,
'9257: m == 20');
vrfy(s == 44.16,
'9258: s == 44.16');
print '9259: Ending test_functions3';
}
print;
print '9100: parsed test_functions3()';