to_text.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef __VIC_USE_MODULES
  2. #include<__vic/to_text.h>
  3. #include<iostream>
  4. #include<exception>
  5. #include<cstdio>
  6. #include<limits>
  7. #endif
  8. #include<cassert>
  9. #ifdef __VIC_USE_MODULES
  10. import std;
  11. import __vic;
  12. #endif
  13. void run_tests()
  14. {
  15. std::string st;
  16. __vic::to_text_append(123, st);
  17. assert(st == "123");
  18. __vic::to_text_append(45UL, st);
  19. assert(st == "12345");
  20. st.clear();
  21. __vic::to_text_append(-123, st);
  22. assert(st == "-123");
  23. st.clear();
  24. {
  25. const int min_int = std::numeric_limits<int>::min();
  26. __vic::to_text_append(min_int, st);
  27. char buf[64];
  28. assert(st.length() < sizeof buf);
  29. std::sprintf(buf, "%d", min_int);
  30. assert(st == buf);
  31. }
  32. st.clear();
  33. __vic::to_text_append(1.2, st);
  34. __vic::to_text_append(true, st);
  35. __vic::to_text_append(short(1), st);
  36. __vic::to_text_append(&st, st);
  37. }
  38. int main()
  39. {
  40. try
  41. {
  42. run_tests();
  43. return 0;
  44. }
  45. catch(const std::exception &ex)
  46. {
  47. std::cerr << ex.what() << '\n';
  48. }
  49. return 1;
  50. }