📄 regress.cal
字号:
'1009: gcd(9/10, 11/5, 4/25) == 0.02'); vrfy(gcd(0,0,0,0,0) == 0, '1010: gcd(0,0,0,0,0) == 0'); vrfy(hypot(3, 4, 1e-6) == 5, '1011: hypot(3, 4, 1e-6) == 5'); vrfy(hypot(2,-3,1e-6) == 3605551/1e6, '1012: hypot(2,-3,1e-6) == 3605551/1e6'); vrfy(im(-4.25 - 7i) == -7, '1013: im(-4.25 - 7i) == -7'); vrfy(lcm(12, -24, 30) == -120,'1014: lcm(12, -24, 30) == -120'); vrfy(lcm(9/10, 11/5, 4/25) == 79.2, '1015: lcm(9/10, 11/5, 4/25) == 79.2'); vrfy(lcm(2) == 2, '1016: lcm(2) == 2'); vrfy(max(2) == 2, '1017: max(2) == 2'); vrfy(min(2) == 2, '1018: min(2) == 2'); vrfy(re(-4.25 - 7i) == -4.25, '1019: re(-4.25 - 7i) == -4.25'); vrfy(size("abc") == 3, '1020: size("abc") == 3'); vrfy(str("") == "", '1021: str("") == ""'); vrfy(str(null()) == "", '1022: str(null()) == ""'); vrfy(str("Ernest Bowen") == "Ernest Bowen", '1023: str("Ernest Bowen") == "Ernest Bowen"'); vrfy(strlen("a b\tc\\d") == 7, '1024: strlen("a b\tc\\d") == 7'); vrfy(xor(2) == 2, '1025: xor(2) == 2'); vrfy(xor(5, 3, 7, 2, 9) == 10, '1026: xor(5, 3, 7, 2, 9) == 10'); vrfy(xor(0,0) == 0, '1027: xor(0,0) == 0'); vrfy(xor(0,1) == 1, '1028: xor(0,1) == 1'); vrfy(xor(1,0) == 1, '1029: xor(1,0) == 1'); vrfy(xor(1,1) == 0, '1030: xor(1,1) == 0'); vrfy(xor(5,3,-7,2,9) == -12, '1031: xor(5,3,-7,2,9) == -12'); vrfy(fib(-2) == -1, '1032: fib(-2) == -1'); vrfy(fib(-1) == 1, '1033: fib(-1) == 1'); vrfy(fib(-10) == -55, '1034: fib(-10) == -55'); vrfy(ilog(1/8, 3) == -2, '1035: ilog(1/8, 3) == -2'); vrfy(ilog(8.9, 3) == 1, '1036: ilog(8.9, 3) == 1'); vrfy(iroot(1,9) == 1, '1037: iroot(1,9) == 1'); vrfy(iroot(pi()^8,5) == 6, '1038: iroot(pi()^8,5)'); vrfy(isqrt(8.5) == 2, '1039: isqrt(8.5) == 2'); vrfy(isqrt(2e56) == 14142135623730950488016887242, '1040: isqrt(2e56) == 14142135623730950488016887242'); vrfy(near(22/7, 3.15, .01) == -1, '1041: near(22/7, 3.15, .01) == -1'); vrfy(near(22/7, 3.15, .005) == 1, '1042: near(22/7, 3.15, .005) == 1'); vrfy(norm(3.4) == 11.56, '1043: isqrt(3.4) == 11.56'); vrfy(pi(1e-5) == 3.14159, '1044: pi(1e-5) == 3.14159'); pi = pi(1e-10); print '1045: pi = pi(1e-10)'; vrfy(pi == 3.1415926536, '1046: pi == 3.1415926536'); vrfy(polar(2,pi/2,1e-5)==2i, '1047: polar(2,pi/2,1e-5)==2i'); vrfy(power(exp(1,1e-20),pi(1e-20)*1i/2,1e-20) == 1i, '1048: power(exp(1,1e-20),pi(1e-20)*1i/2,1e-20) == 1i'); vrfy(ssq(1+2i, 3-4i, 5 +6i) == -21+40i, '1049: ssq(1+2i, 3-4i, 5 +6i) == -21+40i'); vrfy(isreal(ln(1 + 1e-10i, 1e-5)), '1050: isreal(ln(1 + 1e-10i, 1e-5))'); vrfy(isreal(exp(pi(1e-10)*1i, 1e-5)), '1051: isreal(exp(pi(1e-10)*1i, 1e-5))'); vrfy(cfappr(43/30, 10, 0) == 10/7, '1052: cfappr(43/30, 10, 0) == 10/7'); vrfy(cfappr(43/30, 10, 1) == 13/9, '1053: cfappr(43/30, 10, 1) == 13/9'); vrfy(cfappr(43/30, 10, 16) == 10/7, '1054: cfappr(43/30, 10, 16) == 10/7'); vrfy(cfappr(6/5, 1/2, 16) == 1, '1055: cfappr(6/5, 1/2, 16) == 1'); vrfy(cfsim(13,8) == 0, '1056: cfsim(13,8) == 0'); vrfy(cfsim(1057,8) == 0, '1057: cfsim(1057,8) == 0'); vrfy(mod(11,5,0) == 1, '1058: mod(11,5,0) == 1'); vrfy(mod(11,5,1) == -4, '1059: mod(11,5,1) == -4'); vrfy(mod(-11,5,2) == -1, '1060: mod(-11,5,2) == -1'); vrfy(mod(-11,-5,3) == 4, '1061: mod(-11,-5,3) == 4'); vrfy(mod(12.5,5,16) == 2.5, '1062: mod(12.5,5,16) == 2.5'); vrfy(mod(12.5,5,17) == -2.5, '1063: mod(12.5,5,17) == -2.5'); vrfy(mod(12.5,5,24) == 2.5, '1064: mod(12.5,5,24) == 2.5'); vrfy(mod(-7.5,-5,24) == 2.5, '1065: mod(-7.5,-5,24) == 2.5'); vrfy(quo(11,5,0) == 2, '1066: quo(11,5,0) == 2'); vrfy(quo(11,5,1) == 3, '1067: quo(11,5,1) == 3'); vrfy(quo(-11,5,2) == -2, '1068: quo(-11,5,2) == -2'); vrfy(quo(-11,-5,3) == 3, '1069: quo(-11,-5,3) == 3'); vrfy(quo(12.5,5,16) == 2, '1070: quo(12.5,5,16) == 2'); vrfy(quo(12.5,5,17) == 3, '1071: quo(12.5,5,17) == 3'); vrfy(quo(12.5,5,24) == 2, '1072: quo(12.5,5,24) == 2'); vrfy(quo(-7.5,-5,24) == 2, '1073: quo(-7.5,-5,24) == 2'); vrfy(frac(2.5 + 3i) == .5, '1074: frac(2.5 + 3i) == .5'); vrfy(root(1i,1000,1e-2)==1, '1075: root(1i,1000,1e-2) == 1'); vrfy(scale(2+3i,2)==8+12i, '1076: scale(2+3i,2) == 8+12i'); vrfy(frem(8,4) == 2, '1077: frem(8,4) == 2'); vrfy(jacobi(80,199) == 1, '1078: jacobi(80,199) == 1'); vrfy(test(1), '1079: test(1)'); vrfy(!test(0), '1080: !test(0)'); vrfy(hnrmod(2^177-1,1,177,-1)==0, '1081: hnrmod(2^177-1,1,177,-1)==0'); vrfy(hnrmod(2^178-2,1,177,-1)==0, '1082: hnrmod(2^178-2,1,177,-1)==0'); vrfy(hnrmod(2^178-3,1,177,1)==2^177-4, '1083: hnrmod(2^178-3,1,177,1)==2^177-4'); vrfy(hnrmod(2^179-4,1,177,0)==2^177-4, '1084: hnrmod(2^179-4,1,177,0)==2^177-4'); vrfy(hnrmod(1234567^2,13,17,-1)==1155404, '1085: hnrmod(1234567^2,13,17,-1)==1155404'); vrfy(hnrmod(3276^54,45,415,1)==3276^54%(45*2^415+1), '1086: hnrmod(3276^54,45,415,1)==3276^54%(45*2^415+1)'); vrfy(hnrmod(3276^54,45,415,0)==3276^54%(45*2^415), '1087: hnrmod(3276^54,45,415,0)==3276^54%(45*2^415)'); vrfy(hnrmod(3276^54,45,415,-1)==3276^54%(45*2^415-1), '1088: hnrmod(3276^54,45,415,-1)==3276^54%(45*2^415-1)'); vrfy(hnrmod(10^40, 17, 51, 1) == 33827019788296445, '1089: hnrmod(10^40, 17, 51, 1) == 33827019788296445'); vrfy(hnrmod(3192487935759423423521,16,65,1)==241008883965895164956, '1090: hnrmod(3192487935759423423521,16,65,1)==241008883965895164956'); /* * minv bug fix */ a = 2868611690182699929873981931; print '1091: a = 2868611690182699929873981931'; b = 502922899875329926125584830; print '1092: b = 502922899875329926125584830'; vrfy(minv(b,a) == 1111092570983877189739032190, '1093: minv(b,a) == 1111092570983877189739032190'); vrfy(mod(minv(b,a)*b,a) == 1, '1094: mod(minv(b,a)*b,a) == 1'); /* * more functions to test */ vrfy(popcnt(32767) == 15, '1095: popcnt(32767) == 15'); vrfy(popcnt(3/2) == 3, '1096: popcnt(3/2) == 3'); vrfy(popcnt(-237/39929,1) == 17, '1097: popcnt(-237/39929,1) == 17'); vrfy(popcnt(-237/39929,0) == 7, '1098: popcnt(-237/39929,0) == 7'); vrfy(popcnt(-237/39929) == 17, '1099: popcnt(-237/39929) == 17'); vrfy(popcnt(pi(1e-20)) == 65, '1100: popcnt(pi(1e-20)) == 65'); vrfy(popcnt(pi(1e-20),0) == 69, '1101: popcnt(pi(1e-20),0) == 69'); vrfy(popcnt(17^777) == 1593, '1102: popcnt(17^777) == 1593'); /* * more hnrmod testing */ vrfy(hnrmod(21<<100+5,3,100,1) == (21<<100+5)%(3<<100+1), '1103: hnrmod(21<<100+5,3,100,1) == (21<<100+5)%(3<<100+1)'); vrfy(hnrmod(21<<500+7,3,500,1) == (21<<500+7)%(3<<500+1), '1104: hnrmod(21<<500+7,3,500,1) == (21<<500+7)%(3<<500+1)'); vrfy(hnrmod(-767256,84,1,0) == (-767256)%(84<<1+0), '1105: hnrmod(-767256,84,1,0) == (-767256)%(84<<1+0)'); vrfy(hnrmod(-831150,75,1,0) == (-831150)%(75<<1+0), '1106: hnrmod(-831150,75,1,0) == (-831150)%(75<<1+0)'); vrfy(hnrmod(-767256,84,1,1) == (-767256)%(84<<1+1), '1107: hnrmod(-767256,84,1,1) == (-767256)%(84<<1+1)'); vrfy(hnrmod(-831150,75,1,1) == (-831150)%(75<<1+1), '1108: hnrmod(-831150,75,1,1) == (-831150)%(75<<1+1)'); vrfy(hnrmod(-767256,84,1,-1) == (-767256)%(84<<1-1), '1109: hnrmod(-767256,84,1,-1) == (-767256)%(84<<1-1)'); vrfy(hnrmod(-831150,75,1,-1) == (-831150)%(75<<1-1), '1110: hnrmod(-831150,75,1,-1) == (-831150)%(75<<1-1)'); vrfy(hnrmod(21<<100+5,3,100,0) == (21<<100+5)%(3<<100+0), '1111: hnrmod(21<<100+5,3,100,0) == (21<<100+5)%(3<<100+0)'); vrfy(hnrmod(21<<500+7,3,500,-1) == (21<<500+7)%(3<<500-1), '1112: hnrmod(21<<500+7,3,500,-1) == (21<<500+7)%(3<<500-1)'); /* * catalan testing */ vrfy(catalan(2) == 2, '1113: catalan(2) == 2'); vrfy(catalan(3) == 5, '1114: catalan(3) == 5'); vrfy(catalan(4) == 14, '1115: catalan(4) == 14'); vrfy(catalan(20) == 6564120420, '1116: catalan(20) == 6564120420'); /* * bernoulli builtin function testing */ vrfy(bernoulli(0) == 1, '1117: bernoulli(0) == 1'); vrfy(bernoulli(1) == -1/2, '1118: bernoulli(1) == -1/2'); vrfy(bernoulli(2) == 1/6, '1119: bernoulli(2) == 1/6'); vrfy(bernoulli(3) == 0, '1120: bernoulli(3) == 0'); vrfy(bernoulli(4) == -1/30, '1121: bernoulli(4) == -1/30'); vrfy(bernoulli(5) == 0, '1122: bernoulli(5) == 0'); vrfy(bernoulli(6) == 1/42, '1123: bernoulli(6) == 1/42'); vrfy(bernoulli(32) == -7709321041217/510, '1124: bernoulli(32) == -7709321041217/510'); /* * euler function testing */ vrfy(euler(0) == 1, '1125: euler(0) == 1'); vrfy(euler(1) == 0, '1126: euler(1) == 0'); vrfy(euler(2) == -1, '1127: euler(2) == -1'); vrfy(euler(3) == 0, '1128: euler(3) == 0'); vrfy(freeeuler() == null(), '1129: freeeuler() == null()'); vrfy(euler(4) == 5, '1130: euler(4) == 5'); vrfy(euler(5) == 0, '1131: euler(5) == 0'); vrfy(euler(6) == -61, '1132: euler(6) == -61'); vrfy(euler(32) == 177519391579539289436664789665, '1130: euler(32) == 177519391579539289436664789665'); vrfy(freeeuler() == null(), '1133: freeeuler() == null()'); /* * digit with non-10 base */ a = 123456.789; print '1134: a = 123456.789'; vrfy(digit(a, 6, 100) == 0, '1135: digit(a, 6, 100) == 0'); vrfy(digit(a, 5, 100) == 0, '1136: digit(a, 5, 100) == 0'); vrfy(digit(a, 4, 100) == 0, '1137: digit(a, 4, 100) == 0'); vrfy(digit(a, 3, 100) == 0, '1138: digit(a, 3, 100) == 0'); vrfy(digit(a, 2, 100) == 12, '1139: digit(a, 2, 100) == 12'); vrfy(digit(a, 1, 100) == 34, '1140: digit(a, 1, 100) == 34'); vrfy(digit(a, 0, 100) == 56, '1141: digit(a, 0, 100) == 56'); vrfy(digit(a, -1, 100) == 78, '1142: digit(a, -1, 100) == 78'); vrfy(digit(a, -2, 100) == 90, '1143: digit(a, -2, 100) == 90'); vrfy(digit(a, -3, 100) == 0, '1144: digit(a, -3, 100) == 0'); vrfy(digit(a, -4, 100) == 0, '1145: digit(a, -4, 100) == 0'); vrfy(digit(a, -5, 100) == 0, '1146: digit(a, -5, 100) == 0'); vrfy(digit(a, -6, 100) == 0, '1146: digit(a, -6, 100) == 0'); /* * digits with a non-10 base */ vrfy(digits(a, 100) == 3, '1147: digits(a, 100) == 3'); vrfy(digits(2^256-1, 256) == 32,'1148: digits(2^256-1, 256) == 32'); /* * places with a non-10 base */ vrfy(places(0.0123, 2) == -1, '1149: places(0.0123, 2) == -1'); vrfy(places(0.625, 2) == 3, '1150: places(0.625, 2) == 3'); vrfy(places(0.625, 8) == 1, '1151: places(0.625, 8) == 1'); vrfy(places(171/2^712, 2) == 712, '1152: places(171/2^7120.625, 2) == 712'); vrfy(places(171/2^712, 64) == 119, '1152: places(171/2^7120.625, 64) == 119'); /* * verify sleep */ vrfy(sleep(1/5) == null(), '1153: sleep(1/5) == null()'); vrfy(sleep(1/100) == null(), '1154: sleep(1/100) == null()'); /* * verify calcpath */ vrfy(isstr(calcpath()), '1155: isstr(calcpath())'); /* * ssq use of lists */ vrfy(ssq(1,2, list(3,4,list(5,6)), list(), 7, 8) == 204, '1156: ssq(1,2, list(3,4,list(5,6)), list(), 7, 8) == 204'); /* * quomod 5th argument rounding tests */ vrfy(quomod(10,-3,a,b,0) == 1, '1157: vrfy(quomod(10,-3,a,b,0) == 1'); vrfy(a == -4, '1158: a == -4'); vrfy(b == -2, '1159: b == -2'); vrfy(quomod(-10,-3,a,b,1) == 1, '1160: vrfy(quomod(-10,-3,a,b,1) == 1'); vrfy(a == 4, '1161: a == 4'); vrfy(b == 2, '1162: b == 2'); vrfy(quomod(10,3,a,b,2) == 1, '1163: vrfy(quomod(10,3,a,b,2) == 1'); vrfy(a == 3, '1164: a == 3'); vrfy(b == 1, '1165: b == 1'); vrfy(quomod(-10,3,a,b,3) == 1, '1166: vrfy(quomod(-10,3,a,b,3) == 1'); vrfy(a == -4, '1167: a == -4'); vrfy(b == 2, '1168: b == 2'); vrfy(quomod(10,-3,a,b,4) == 1, '1169: vrfy(quomod(10,-3,a,b,4) == 1'); vrfy(a == -3, '1170: a == -3'); vrfy(b == 1, '1171: b == 1'); vrfy(quomod(-10,-3,a,b,5) == 1, '1172: vrfy(quomod(-10,-3,a,b,5) == 1'); vrfy(a == 3, '1173: a == 3'); vrfy(b == -1, '1174: b == -1'); vrfy(quomod(10,3,a,b,6) == 1, '1175: vrfy(quomod(10,3,a,b,6) == 1'); vrfy(a == 3, '1176: a == 3'); vrfy(b == 1, '1177: b == 1'); vrfy(quomod(-10,3,a,b,7) == 1, '1178: vrfy(quomod(-10,3,a,b,7) == 1'); vrfy(a == -4, '1179: a == -4'); vrfy(b == 2, '1180: b == 2'); vrfy(quomod(10,-3,a,b,8) == 1, '1181: vrfy(quomod(10,-3,a,b,8) == 1'); vrfy(a == -4, '1182: a == -4'); vrfy(b == -2, '1183: b == -2'); vrfy(quomod(-10,-3,a,b,9) == 1, '1184: vrfy(quomod(-10,-3,a,b,9) == 1'); vrfy(a == 3, '1185: a == 3'); vrfy(b == -1, '1186: b == -1'); vrfy(quomod(10,3,a,b,10) == 1, '1187: vrfy(quomod(10,3,a,b,10) == 1'); vrfy(a == 4, '1188: a == 4'); vrfy(b == -2, '1189: b == -2'); vrfy(quomod(-10,3,a,b,11) == 1, '1190: vrfy(quomod(-10,3,a,b,11) == 1'); vrfy(a == -4, '1191: a == -4'); vrfy(b == 2, '1192: b == 2'); vrfy(quomod(10,-3,a,b,12) == 1, '1193: vrfy(quomod(10,-3,a,b,12) == 1'); vrfy(a == -3, '1194: a == -3'); vrfy(b == 1, '1195: b == 1'); vrfy(quomod(-10,-3,a,b,13) == 1,'1196: vrfy(quomod(-10,-3,a,b,13) == 1'); vrfy(a == 4, '1197: a == 4'); vrfy(b == 2, '1198: b == 2'); vrfy(quomod(10,3,a,b,14) == 1, '1199: vrfy(quomod(10,3,a,b,14) == 1'); vrfy(a == 4, '1200: a == 4'); vrfy(b == -2, '1201: b == -2'); vrfy(quomod(-10,3,a,b,15) == 1, '1202: vrfy(quomod(-10,3,a,b,15) == 1'); vrfy(a == -4, '1203: a == -4'); vrfy(b == 2, '1204: b == 2'); /* runtime(), systime(), usertime() return numeric values */ vrfy(isnum(runtime()), '1205: isnum(runtime())'); vrfy(isnum(systime()), '1206: isnum(systime())'); vrfy(isnum(usertime()), '1207: isnum(usertime())'); print '1208: Ending test_functions';}print '017: parsed test_functions()';/* * _test_underscore - test use of _'s in identifiers */_ = 49;print '018: _ = 49';__ = 63;print "019: __ = 63";define _test_underscore(){ local _a = 27; local __a = 23209; print "1290: Beginning _test_underscore"; vrfy(_a == 27, '1291: _a == 27'); vrfy(_ == 49, '1292: _ == 49'); vrfy(__ == 63, '1293: __ == 63'); vrfy(__a == 23209, '1294: __a == 23209'); print "1295: Ending _test_underscore";}print '020: parsed _test_underscore';/* * place holder for any print items */print "021:", "reserved for future use";print "022:": " reserved for future use";/* * Test associations */define test_assoc(){ static a; static b; local A; print '1300: Beginning associations test'; a = assoc(); vrfy(size(a) == 0, '1301: size(a) == 0'); a["curds"] = 13; print '1302: a["curds"] = 13'; vrfy(a["curds"] == 13, '1303: a["curds"] == 13'); a[13] = 17; print '1304: a[13] = 17'; vrfy(a[13] == 17, '1305: a[13] == 17'); vrfy(a[a["curds"]] == 17, '1306: a[a["curds"]] == 17'); a[17] = 19; print '1307: a[17] = 19'; vrfy(a[17] == 19, '1308: a[17] == 19'); vrfy(a[a["curds"]+4] == 19, '1309: a[a["curds"]+4] == 19');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -