diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-03 22:43:44 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-01-03 22:43:44 +0100 |
commit | d30b160fe3b595c071d37345c51b35fffb2ad30c (patch) | |
tree | 322f1664efe88d03b7d50b5aadbce06f3352af9b /sys/src/libmp/test.c | |
parent | 39f18c9d88f52a22373790dec5721fa3521d3f00 (diff) |
libmp: support for c-style base prefixes for strtomp(), octal support
Diffstat (limited to 'sys/src/libmp/test.c')
-rw-r--r-- | sys/src/libmp/test.c | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/sys/src/libmp/test.c b/sys/src/libmp/test.c index 50838cf01..2bf8b8bc4 100644 --- a/sys/src/libmp/test.c +++ b/sys/src/libmp/test.c @@ -30,34 +30,34 @@ prng(uchar *p, int n) void testconv(char *str) { + int i, base[] = {2,8,10,16,32,64}; mpint *b; char *p; + print("testconv \"%s\":\n", str); b = strtomp(str, nil, 16, nil); - p = mptoa(b, 10, nil, 0); - print("%s = ", p); - strtomp(p, nil, 10, b); - free(p); - print("%B\n", b); - - p = mptoa(b, 16, nil, 0); - print("%s = ", p); - strtomp(p, nil, 16, b); - free(p); - print("%B\n", b); - - p = mptoa(b, 32, nil, 0); - print("%s = ", p); - strtomp(p, nil, 32, b); - free(p); - print("%B\n", b); - - p = mptoa(b, 64, nil, 0); - print("%s = ", p); - strtomp(p, nil, 64, b); - free(p); - print("%B\n", b); + for(i=0; i<nelem(base); i++){ + p = mptoa(b, base[i], nil, 0); + print("base%d: %s = ", base[i], p); + strtomp(p, nil, base[i], b); + free(p); + print("%B\n", b, base[i], b); + + switch(base[i]){ + case 2: + case 8: + case 10: + case 16: + p = smprint("%#.*B", base[i], b); + print("# %s = ", p); + strtomp(p, nil, 0, b); + free(p); + print("%#.*B\n", base[i], b); + break; + } + + } mpfree(b); } @@ -419,6 +419,11 @@ main(int argc, char **argv) testconv("0"); testconv("-abc0123456789abcedf"); testconv("abc0123456789abcedf"); + testconv("ffffffff"); + testconv("aaaaaaaaaaaaaaaaa"); + testconv("1111111111111111"); + testconv("33333333333333333333333333333333"); + testvecdigmulsub("fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 2); testsub1("1FFFFFFFE00000000", "FFFFFFFE00000001"); testmul1("ffffffff", "f"); |