MCPcopy Create free account
hub / github.com/cosdata/cosdata / random_vector

Function random_vector

src/models/durable_wal.rs:187–225  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

185 }
186
187 fn random_vector() -> RawVectorEmbedding {
188 let mut rng = thread_rng();
189 let dense_len = rng.gen_range(1..8);
190 let metadata_len = rng.gen_range(1..4);
191 let sparse_len = rng.gen_range(0..4);
192 let bytes_len = rng.gen_range(100..200);
193
194 let mut metadata = HashMap::new();
195 for _ in 0..metadata_len {
196 let key = random_string(5);
197 let val = if rng.gen_bool(0.5) {
198 FieldValue::Int(rng.gen_range(-1000..1000))
199 } else {
200 FieldValue::String(random_string(6))
201 };
202 metadata.insert(key, val);
203 }
204
205 let mut bytes = Vec::with_capacity(bytes_len);
206
207 for _ in 0..bytes_len {
208 bytes.push(rng.gen());
209 }
210
211 RawVectorEmbedding {
212 id: random_string(8).into(),
213 document_id: Some(random_string(12).into()),
214 dense_values: Some((0..dense_len).map(|_| rng.gen()).collect()),
215 metadata: Some(metadata),
216 use_usv: true,
217 sparse_values: Some(
218 (0..sparse_len)
219 .map(|_| SparsePair(rng.gen(), rng.gen()))
220 .collect(),
221 ),
222 text: Some(random_string(16)),
223 bytes: Some(bytes),
224 }
225 }
226
227 #[test]
228 fn test_random_upsert_persistence() {

Callers 2

Calls 4

SparsePairClass · 0.85
random_stringFunction · 0.70
insertMethod · 0.45
pushMethod · 0.45

Tested by 2