dec_test.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. *******************************************************************************
  3. \file dec_test.c
  4. \brief Tests for decimal strings
  5. \project bee2/test
  6. \created 2015.11.09
  7. \version 2015.11.11
  8. \copyright The Bee2 authors
  9. \license Licensed under the Apache License, Version 2.0 (see LICENSE.txt).
  10. *******************************************************************************
  11. */
  12. #include <bee2/core/dec.h>
  13. #include <bee2/core/str.h>
  14. #include <bee2/core/u32.h>
  15. #ifdef U64_SUPPORT
  16. #include <bee2/core/u64.h>
  17. #endif
  18. /*
  19. *******************************************************************************
  20. Тестирование
  21. *******************************************************************************
  22. */
  23. bool_t decTest()
  24. {
  25. char dec[21];
  26. // u32
  27. decFromU32(dec, 10, U32_MAX);
  28. if (!strEq(dec, "4294967295") ||
  29. decToU32(dec) != U32_MAX)
  30. return FALSE;
  31. #ifdef U64_SUPPORT
  32. // u64
  33. decFromU64(dec, 20, U64_MAX);
  34. if (!strEq(dec, "18446744073709551615") ||
  35. decToU64(dec) != U64_MAX)
  36. return FALSE;
  37. #endif
  38. // check digits
  39. if (decLuhnCalc("7992739871") != '3' ||
  40. !decLuhnVerify("79927398713") ||
  41. decLuhnVerify("69927398713") ||
  42. decDammCalc("572") != '4' ||
  43. !decDammVerify("5724") ||
  44. decDammVerify("5274"))
  45. return FALSE;
  46. // все нормально
  47. return TRUE;
  48. }