mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-25 23:24:03 +00:00
fix(ci): Fix test type mismatches and remove cargo test --lib
- Fix attention/operators.rs tests: use to_json() for JsonB parameters - Fix learning/operators.rs tests: correct parameter types for enable_learning, auto_tune, extract_patterns - Remove cargo test --lib from CI: pg_test tests require pgrx runtime and cause linker errors (undefined PostgreSQL symbols) when compiled outside pgrx test harness 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
47b6ab7556
commit
3ccd66b381
3 changed files with 18 additions and 13 deletions
6
.github/workflows/ruvector-postgres-ci.yml
vendored
6
.github/workflows/ruvector-postgres-ci.yml
vendored
|
|
@ -179,9 +179,9 @@ jobs:
|
|||
run: cargo build --no-default-features --features pg${{ matrix.pg_version }} --release
|
||||
working-directory: crates/ruvector-postgres
|
||||
|
||||
- name: Run unit tests
|
||||
run: cargo test --no-default-features --features pg${{ matrix.pg_version }} --lib -- --nocapture
|
||||
working-directory: crates/ruvector-postgres
|
||||
# Note: cargo test --lib is skipped because #[pg_test] tests require PostgreSQL runtime
|
||||
# and cause linker errors (undefined symbols) when compiled outside pgrx test harness.
|
||||
# All tests are run via cargo pgrx test instead.
|
||||
|
||||
- name: Run pgrx tests
|
||||
run: cargo pgrx test pg${{ matrix.pg_version }} --no-default-features
|
||||
|
|
|
|||
|
|
@ -332,6 +332,11 @@ pub fn ruvector_attention_scores(
|
|||
mod tests {
|
||||
use super::*;
|
||||
|
||||
// Helper to convert Vec<Vec<f32>> to JsonB for tests
|
||||
fn to_json(data: Vec<Vec<f32>>) -> JsonB {
|
||||
JsonB(serde_json::json!(data))
|
||||
}
|
||||
|
||||
#[pg_test]
|
||||
fn test_ruvector_attention_score() {
|
||||
let query = vec![1.0, 0.0, 0.0];
|
||||
|
|
@ -362,8 +367,8 @@ mod tests {
|
|||
#[pg_test]
|
||||
fn test_ruvector_multi_head_attention() {
|
||||
let query = vec![1.0, 0.0, 0.0, 0.0];
|
||||
let keys = vec![vec![1.0, 0.0, 0.0, 0.0], vec![0.0, 1.0, 0.0, 0.0]];
|
||||
let values = vec![vec![1.0, 2.0], vec![3.0, 4.0]];
|
||||
let keys = to_json(vec![vec![1.0, 0.0, 0.0, 0.0], vec![0.0, 1.0, 0.0, 0.0]]);
|
||||
let values = to_json(vec![vec![1.0, 2.0], vec![3.0, 4.0]]);
|
||||
|
||||
let result = ruvector_multi_head_attention(query, keys, values, 2);
|
||||
|
||||
|
|
@ -375,8 +380,8 @@ mod tests {
|
|||
#[pg_test]
|
||||
fn test_ruvector_flash_attention() {
|
||||
let query = vec![1.0, 0.0, 0.0, 0.0];
|
||||
let keys = vec![vec![1.0, 0.0, 0.0, 0.0]];
|
||||
let values = vec![vec![5.0, 10.0]];
|
||||
let keys = to_json(vec![vec![1.0, 0.0, 0.0, 0.0]]);
|
||||
let values = to_json(vec![vec![5.0, 10.0]]);
|
||||
|
||||
let result = ruvector_flash_attention(query, keys, values, 64);
|
||||
|
||||
|
|
@ -388,11 +393,11 @@ mod tests {
|
|||
#[pg_test]
|
||||
fn test_ruvector_attention_scores() {
|
||||
let query = vec![1.0, 0.0, 0.0];
|
||||
let keys = vec![
|
||||
let keys = to_json(vec![
|
||||
vec![1.0, 0.0, 0.0],
|
||||
vec![0.0, 1.0, 0.0],
|
||||
vec![0.0, 0.0, 1.0],
|
||||
];
|
||||
]);
|
||||
|
||||
let scores = ruvector_attention_scores(query, keys, "scaled_dot");
|
||||
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ mod tests {
|
|||
|
||||
#[pg_test]
|
||||
fn test_auto_tune() {
|
||||
ruvector_enable_learning("test_autotune", 1000).unwrap();
|
||||
ruvector_enable_learning("test_autotune", None).unwrap();
|
||||
|
||||
// Record some trajectories
|
||||
for i in 0..10 {
|
||||
|
|
@ -448,14 +448,14 @@ mod tests {
|
|||
.unwrap();
|
||||
}
|
||||
|
||||
let result = ruvector_auto_tune("test_autotune", "balanced", 1.0);
|
||||
let result = ruvector_auto_tune("test_autotune", "balanced", None);
|
||||
|
||||
assert!(result.is_ok());
|
||||
}
|
||||
|
||||
#[pg_test]
|
||||
fn test_get_search_params() {
|
||||
ruvector_enable_learning("test_search_params", 1000).unwrap();
|
||||
ruvector_enable_learning("test_search_params", None).unwrap();
|
||||
|
||||
// Record and extract patterns first
|
||||
for i in 0..20 {
|
||||
|
|
@ -494,7 +494,7 @@ mod tests {
|
|||
.unwrap();
|
||||
}
|
||||
|
||||
ruvector_extract_patterns("test_consolidate", Some(10)).unwrap();
|
||||
ruvector_extract_patterns("test_consolidate", 10).unwrap();
|
||||
|
||||
let result = ruvector_consolidate_patterns("test_consolidate", Some(0.95));
|
||||
assert!(result.is_ok());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue