summaryrefslogtreecommitdiff
path: root/sys/src/libmp/test.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-01-03 22:43:44 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2016-01-03 22:43:44 +0100
commitd30b160fe3b595c071d37345c51b35fffb2ad30c (patch)
tree322f1664efe88d03b7d50b5aadbce06f3352af9b /sys/src/libmp/test.c
parent39f18c9d88f52a22373790dec5721fa3521d3f00 (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.c51
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");