Squashed 'vendor/ruvector/' content from commit b64c2172

git-subtree-dir: vendor/ruvector
git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
ruv
2026-02-28 14:39:40 -05:00
commit d803bfe2b1
7854 changed files with 3522914 additions and 0 deletions

124
npm/core/test-package.cjs Normal file
View File

@@ -0,0 +1,124 @@
#!/usr/bin/env node
/**
* Test script for @ruvector/core-linux-x64-gnu package
* Verifies that the native binary loads correctly
*/
const fs = require('fs');
const path = require('path');
console.log('🧪 Testing @ruvector/core-linux-x64-gnu package...\n');
// Test 1: Check files exist
console.log('📁 Test 1: Checking file structure...');
const platformDir = path.join(__dirname, 'platforms/linux-x64-gnu');
const requiredFiles = [
'index.js',
'ruvector.node',
'package.json',
'README.md'
];
let filesOk = true;
for (const file of requiredFiles) {
const filePath = path.join(platformDir, file);
if (fs.existsSync(filePath)) {
const stats = fs.statSync(filePath);
const size = stats.size > 1024 * 1024
? `${(stats.size / (1024 * 1024)).toFixed(2)} MB`
: `${(stats.size / 1024).toFixed(2)} KB`;
console.log(`${file} (${size})`);
} else {
console.log(`${file} - MISSING`);
filesOk = false;
}
}
if (!filesOk) {
console.error('\n❌ File structure test FAILED');
process.exit(1);
}
console.log('\n✅ File structure test PASSED\n');
// Test 2: Load native module
console.log('📦 Test 2: Loading native module...');
try {
const nativeModule = require(path.join(platformDir, 'index.js'));
console.log(' ✅ Native module loaded successfully');
console.log(' Module exports:', Object.keys(nativeModule).join(', '));
console.log('\n✅ Native module test PASSED\n');
} catch (error) {
console.error(' ❌ Failed to load native module:', error.message);
console.error('\n❌ Native module test FAILED');
process.exit(1);
}
// Test 3: Create database instance
console.log('🗄️ Test 3: Creating database instance...');
try {
const { VectorDb } = require(path.join(platformDir, 'index.js'));
const db = new VectorDb({
dimensions: 128,
maxElements: 1000,
storagePath: `/tmp/ruvector-test-${Date.now()}-1.db`
});
console.log(' ✅ Database instance created successfully');
console.log('\n✅ Database creation test PASSED\n');
} catch (error) {
console.error(' ❌ Failed to create database:', error.message);
console.error('\n❌ Database creation test FAILED');
process.exit(1);
}
// Test 4: Basic operations
console.log('🔧 Test 4: Testing basic operations...');
(async () => {
try {
const { VectorDb } = require(path.join(platformDir, 'index.js'));
const db = new VectorDb({
dimensions: 3,
maxElements: 100,
storagePath: `/tmp/ruvector-test-${Date.now()}-2.db`
});
// Insert vector
const vector = new Float32Array([0.1, 0.2, 0.3]);
const id = await db.insert({
id: 'test_vector',
vector: vector
});
console.log(` ✅ Inserted vector with ID: ${id}`);
// Count vectors
const count = await db.len();
console.log(` ✅ Vector count: ${count}`);
// Search
const queryVector = new Float32Array([0.1, 0.2, 0.3]);
const results = await db.search({
vector: queryVector,
k: 1
});
console.log(` ✅ Search returned ${results.length} result(s)`);
if (results.length > 0) {
console.log(` - ID: ${results[0].id}, Score: ${results[0].score.toFixed(6)}`);
}
// Delete
const deleted = await db.delete('test_vector');
console.log(` ✅ Deleted vector: ${deleted}`);
console.log('\n✅ Basic operations test PASSED\n');
console.log('🎉 All tests PASSED!\n');
console.log('Package is ready for publishing.');
} catch (error) {
console.error(' ❌ Basic operations failed:', error.message);
console.error(error.stack);
console.error('\n❌ Basic operations test FAILED');
process.exit(1);
}
})();