Пример #1
0
int main(int argc, char **argv) {
  FILE *pipe = popen("tee arithmetic.log | /usr/bin/ruby", "w");
  if (pipe == NULL) {
    handle_error(-1, "popen");
  }
  int pfd = fileno(pipe);
  handle_error(pfd, "fileno");
  int retcode = close(STDOUT_FILENO);
  handle_error(retcode, "close(STDOUT_FILENO)");
  retcode = dup(pfd);
  handle_error(retcode, "dup");
  fprintf(stderr, "doing add_test\n");
  add_test();
  fprintf(stderr, "doing sub_test\n");
  sub_test();
  fprintf(stderr, "doing sprintf_test\n");
  sprintf_test();
  fprintf(stderr, "doing mul_test\n");
  mul_test();
  fprintf(stderr, "doing divx_test\n");
  divx_test();
  fprintf(stderr, "done with C-operations\n");
  printf("puts 'DONE'\n");
  fflush(stdout);
  retcode = close(STDOUT_FILENO);
  handle_error(retcode, "close");
  retcode = pclose(pipe);
  handle_error(retcode, "pclose");
  exit(0);
}
Пример #2
0
void mg_uint256_mul_test()
{
	mul_test("135123333333333333314541", "46782741153131331");
	mul_test("99999999999999999999999999999999999", "99999999999999999999999999999999999");
	mul_test("999999999999999999999", "9999999999999999");
	mul_test("500", "20");
	mul_test("8888888888888888141351", "446165153118888888888888888141351");
	mul_test("446165153118888888888888888141351", "446165153118888888888888888141351");
	mul_test("123465791234657912346579123465791234657912346579123465791234657912346579123", "20");
	mul_test("3333333333333333", "999999999999999999999999999999999999999999999999");
	mul_test("340282366920938463463374607431768211456", "1");
	mul_test("115792089237316195423570985008687907853269984665640564039457584007913129639935", "1");
	mul_test("340282366920938463463374607431768211455", "340282366920938463463374607431768211455");
	mul_test("340282366920938463463374607431768211455", "1");
	mul_test("18446744073709551616", "18446744073709551616");
	mul_test("340282366920938463463374607431768211456", "18446744073709551616");
	mul_test("340282366920768211456", "18446744073709551616");
	mul_test("34028236656", "34028236656");
	mul_test("3402656", "3402656");
	mul_test("34", "1324");
	mul_test("9999999999999999999999999999999999999", "9999");
	mul_test("9999999999999999999999999999999999999", "9999999");
	mul_test("9999999999999999999999999999999999999", "99999999999");
	mul_test("9999999999999999999999999999999999999", "999999999999999999999999");
	mul_test("0", "999999999999999999999999");

	mul128_test("135123333333333333314541", "46782741153131331");
	mul128_test("9999999999999999999999999999999999", "9999999999999999999999999999999999");
	mul128_test("999999999999999999999", "9999999999999999");
	mul128_test("500", "20");
	mul128_test("8888888888888888141351", "446165153118888888888888888141351");
	mul128_test("446165153118888888888888888141351", "446165153118888888888888888141351");
	mul128_test("12346579123465791234657912346579123", "20");
	mul128_test("340282366920938463463374607431768211455", "340282366920938463463374607431768211455");
	mul128_test("340282366920938463463374607431768211455", "1");
	mul128_test("18446744073709551616", "18446744073709551616");
	mul128_test("0", "18446744073709551616");

	mul256x64_test("18446744073709551616", "18446744073709551");
	mul256x64_test("12346579123465791234657912346579123", "20");
	mul256x64_test("135123333333333333314541", "5264180654151");
	mul256x64_test("135123333333333333314541", "99999999999999");
	mul256x64_test("135123333333333333314541", "2");
	mul256x64_test("135123333333333333314541", "666");
	mul256x64_test("13512333333314541", "99999999");
	mul256x64_test("1351233", "99999999");
	mul256x64_test("1230000000000135111", "99999999");
	mul256x64_test("1351233333331454333333333331454133333333333145411", "99999999");
	mul256x64_test("3145413333333333135123333333333333314541", "99999999999999");
	mul256x64_test("3145413333333333135123333333333333314541", "9999999999999999");
	mul256x64_test("9999999999999999999999999999999999999999", "99999999999999");
	mul256x64_test("0", "99999999999999");

	printf("TEST mg_uint256_mul(): OK\n");
}