MCPcopy Create free account
hub / github.com/antgroup/vsag / create_random_string

Function create_random_string

examples/cpp/107_index_pyramid.cpp:20–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18#include <iostream>
19
20std::string
21create_random_string(bool is_full) {
22 const std::vector<std::string> level1 = {"a", "b", "c"};
23 const std::vector<std::string> level2 = {"d", "e"};
24 const std::vector<std::string> level3 = {"f", "g", "h"};
25
26 std::random_device rd;
27 std::mt19937 mt(rd());
28 std::uniform_int_distribution<> distr;
29
30 std::vector<std::string> selected_levels;
31
32 if (is_full) {
33 selected_levels.push_back(level1[distr(mt) % level1.size()]);
34 selected_levels.push_back(level2[distr(mt) % level2.size()]);
35 selected_levels.push_back(level3[distr(mt) % level3.size()]);
36 } else {
37 std::uniform_int_distribution<> dist(1, 3);
38 int num_levels = dist(mt);
39
40 if (num_levels >= 1) {
41 selected_levels.emplace_back(level1[distr(mt) % level1.size()]);
42 }
43 if (num_levels >= 2) {
44 selected_levels.emplace_back(level2[distr(mt) % level2.size()]);
45 }
46 if (num_levels == 3) {
47 selected_levels.emplace_back(level3[distr(mt) % level3.size()]);
48 }
49 }
50
51 std::string random_string = selected_levels.empty() ? "" : selected_levels[0];
52 for (size_t i = 1; i < selected_levels.size(); ++i) {
53 random_string += "/" + selected_levels[i];
54 }
55
56 return random_string;
57}
58
59int
60main(int argc, char** argv) {

Callers 1

mainFunction · 0.70

Calls 2

sizeMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected