MCPcopy Create free account
hub / github.com/dcleblanc/SafeInt / MultVerifyUintUint64

Function MultVerifyUintUint64

Test/MultVerify.cpp:378–417  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

376};
377
378void MultVerifyUintUint64()
379{
380 size_t i;
381
382 for( i = 0; i < COUNTOF(uint32_uint64); ++i )
383 {
384 std::uint32_t ret;
385 if( SafeMultiply(uint32_uint64[i].x, uint32_uint64[i].y, ret) != uint32_uint64[i].fExpected )
386 {
387 //assert(false);
388 // printf("Error in case %I64X, %I64X, expected = %s\n",
389 // uint32_uint64[i].x, uint32_uint64[i].y, uint32_uint64[i].fExpected ? "true" : "false");
390 cerr << "Error in case uint32_uint64: ";
391 cerr << hex << setw(16) << setfill('0') << uint32_uint64[i].x << ", ";
392 cerr << hex << setw(16) << setfill('0') << uint32_uint64[i].y << ", ";
393 cerr << "expected = " << uint32_uint64[i].fExpected << endl;
394 }
395
396 bool fSuccess = true;
397 try
398 {
399 SafeInt<std::uint32_t> si(uint32_uint64[i].x);
400 si *= uint32_uint64[i].y;
401 }
402 catch(...)
403 {
404 fSuccess = false;
405 }
406
407 if( fSuccess != uint32_uint64[i].fExpected )
408 {
409 // printf("Error in case uint32_uint64 throw: %I64X, %I64X, expected = %s\n",
410 // uint32_uint64[i].x, uint32_uint64[i].y, uint32_uint64[i].fExpected ? "true" : "false");
411 cerr << "Error in case uint32_uint64 throw: ";
412 cerr << hex << setw(16) << setfill('0') << uint32_uint64[i].x << ", ";
413 cerr << hex << setw(16) << setfill('0') << uint32_uint64[i].y << ", ";
414 cerr << "expected = " << uint32_uint64[i].fExpected << endl;
415 }
416 }
417}
418
419static const MultTest< std::uint32_t, std::int64_t > uint32_int64[] =
420{

Callers 1

MultVerifyFunction · 0.70

Calls 1

SafeMultiplyFunction · 0.50

Tested by

no test coverage detected