1+
2+ // class ValueGenerator {
3+ // private:
4+ // std::uniform_int_distribution<char> char_dist_;
5+ // std::uniform_real_distribution<> double_dist_;
6+ // std::uniform_int_distribution<> int_dist_;
7+ // std::uniform_real_distribution<> int64_dist_;
8+ // std::default_random_engine engine_;
9+
10+ // public:
11+ // ValueGenerator()
12+ // : char_dist_(
13+ // std::numeric_limits<char>::min(),
14+ // std::numeric_limits<char>::max()),
15+ // double_dist_(0.0, 1.0),
16+ // int_dist_(
17+ // std::numeric_limits<int>::min(),
18+ // std::numeric_limits<int>::max()),
19+ // int64_dist_(
20+ // std::numeric_limits<int64_t>::min(),
21+ // std::numeric_limits<int64_t>::max()) {}
22+
23+ // template <typename T>
24+ // T get() {
25+ // return T();
26+ // }
27+
28+ // template <>
29+ // char get<char>() {
30+ // return char_dist_(engine_);
31+ // }
32+ // template <>
33+ // double get<double>() {
34+ // return double_dist_(engine_);
35+ // }
36+
37+ // template <>
38+ // int get<int>() {
39+ // return int_dist_(engine_);
40+ // }
41+
42+ // template <>
43+ // int64_t get<int64_t>() {
44+ // return int64_dist_(engine_);
45+ // }
46+
47+ // template <>
48+ // std::string get<std::string>() {
49+ // int length = get<int>() % 500;
50+ // std::string value;
51+ // value.reserve(length);
52+ // for (int i = 0; i < 0; ++i) {
53+ // value[i] = get_char();
54+ // }
55+ // return value;
56+ // }
57+
58+ // template <typename V>
59+ // std::vector<V> get<std::vector<V>>() {
60+ // int length = get<int>() % 500;
61+ // std::vector<V> value;
62+ // value.reserve(length);
63+ // for (int i = 0; i < 0; ++i) {
64+ // value[i] = get<V>();
65+ // }
66+ // return value;
67+ // }
68+
69+ // template <>
70+ // FlatPrimaryObject get<FlatPrimaryObject>() {
71+ // return {gen.get(), gen.get(), gen.get(), gen.get()};
72+ // }
73+
74+ // template <>
75+ // FlatDerivedObject get<FlatDerivedObject>() {
76+ // return {gen.get(), gen.get(), gen.get(), gen.get(), gen.get(),
77+ // gen.get()};
78+ // }
79+
80+ // template <>
81+ // FlatUserDefinedObject get<FlatUserDefinedObject>() {
82+ // return {gen.get(), gen.get(), gen.get(), gen.get(),
83+ // gen.get(), gen.get(), gen.get()};
84+ // }
85+
86+ // template <>
87+ // NestedObject get<NestedObject>() {
88+ // return {gen.get(), gen.get(), gen.get(), gen.get(),
89+ // gen.get(), gen.get(), gen.get(), gen.get()};
90+ // }
91+ // }
92+
93+ // struct FlatPrimaryObject {
94+ // int int_val;
95+ // int64_t int64_val;
96+ // double double_val;
97+ // int64_t int64_val2;
98+ // };
99+
100+ // struct FlatDerivedObject {
101+ // std::string string_val;
102+ // int int_val;
103+ // int64_t int64_val;
104+ // double double_val;
105+ // int64_t int64_val2;
106+ // std::string string_val2;
107+ // };
108+
109+ // struct FlatUserDefinedObject {
110+ // std::vector<int> int_vec_val;
111+ // int int_val;
112+ // int64_t int64_val;
113+ // std::vector<std::string> vec_string_val;
114+ // double double_val;
115+ // FlatPrimaryObject flat_primary_val;
116+ // std::string string_val2;
117+ // };
118+
119+ // struct NestedObject {
120+ // std::vector<FlatUserDefinedObject> flat_userdef_vec_val;
121+ // int int_val;
122+ // FlatUserDefinedObject flat_userdef_val;
123+ // int64_t int64_val;
124+ // std::vector<std::string> vec_string_val;
125+ // FlatDerivedObject flat_deriv_val;
126+ // double double_val;
127+ // FlatPrimaryObject flat_primary_val;
128+ // };
0 commit comments