diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2025-01-13 22:32:51 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2025-01-13 22:32:51 +0200 |
| commit | 3182bcbabd610579b29d33eacb1839800a0cd545 (patch) | |
| tree | b6ac1e98851016eb539d78f77948f5f7303d7545 | |
| parent | 28aa7061a0148e7da34229be7e49bff82f64bbf0 (diff) | |
Add test for range_by
| -rw-r--r-- | log_db/tests/integration.rs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/log_db/tests/integration.rs b/log_db/tests/integration.rs index 2dc1c04..2ef04d1 100644 --- a/log_db/tests/integration.rs +++ b/log_db/tests/integration.rs @@ -569,3 +569,51 @@ fn test_delete_by() { 1 ); } + +#[test] +fn test_range_by_id() { + let data_dir = tmp_dir(); + let mut db = DB::<Inst>::configure() + .data_dir(&data_dir) + .initialize() + .expect("Failed to initialize DB instance"); + + let inserted_ids = vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; + + for id in inserted_ids.iter() { + db.upsert(Inst { + id: *id, + name: Some("Foobar".to_string()), + data: vec![], + }) + .unwrap(); + } + + // Test range [3, 7) + let received = db + .range_by(&Field::Id, &Value::Int(3)..&Value::Int(7)) + .unwrap(); + let received_ids: Vec<i64> = received.iter().map(|inst| inst.id).collect(); + + assert_eq!(received_ids, vec![3, 4, 5, 6]); + + // Test range [3, 7] + let received = db + .range_by(&Field::Id, &Value::Int(3)..=&Value::Int(7)) + .unwrap(); + let received_ids: Vec<i64> = received.iter().map(|inst| inst.id).collect(); + + assert_eq!(received_ids, vec![3, 4, 5, 6, 7]); + + // Test range (-inf, 7] + let received = db.range_by(&Field::Id, ..=&Value::Int(7)).unwrap(); + let received_ids: Vec<i64> = received.iter().map(|inst| inst.id).collect(); + + assert_eq!(received_ids, vec![0, 1, 2, 3, 4, 5, 6, 7]); + + // Test range (3, inf) + let received = db.range_by(&Field::Id, &Value::Int(3)..).unwrap(); + let received_ids: Vec<i64> = received.iter().map(|inst| inst.id).collect(); + + assert_eq!(received_ids, vec![3, 4, 5, 6, 7, 8, 9]); +} |
