Advertisement
kalabukdima

Random structure generation

Nov 13th, 2020
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. std::unique_ptr<json::Value> generateRandomValue(int depth);
  2.  
  3. std::unique_ptr<json::Int> genrateRandomInt() {
  4.     return std::make_unique<json::Int>(std::rand() % 100);
  5. }
  6.  
  7. std::unique_ptr<json::List> generateRandomList(int depth) {
  8.     auto p = std::make_unique<json::List>();
  9.     const int size = 2 + std::rand() % 8;
  10.     for (int i = 0; i < size; ++i) {
  11.         p->list.push_back(generateRandomValue(depth - 1));
  12.     }
  13.     return p;
  14. }
  15.  
  16. std::unique_ptr<json::Value> generateRandomValue(int depth) {
  17.     const int r = std::rand() % 10;
  18.     if (r < 5 || depth == 0) {
  19.         return genrateRandomInt();
  20.     } else {
  21.         return generateRandomList(depth);
  22.     }
  23. }
  24.  
  25.  
  26. int main() {
  27.     std::srand(3);
  28.     const auto value = generateRandomList(4);
  29.     std::cout << serialize(value.get());
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement