Skip to content

Commit 132b9dd

Browse files
committed
Added tests
1 parent e75181b commit 132b9dd

3 files changed

Lines changed: 43 additions & 1 deletion

File tree

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ jobs:
2020
cd pgvector
2121
make
2222
sudo make install
23+
- run: lua test/pgvector.lua
2324
- run: lua test/example.lua

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ cd pgvector-lua
9595
createdb pgvector_lua_test
9696
luarocks install pgmoon
9797
luarocks install luasocket
98-
lua test/example.lua
98+
lua test/pgvector.lua
9999
```
100100

101101
To run an example:

test/pgvector.lua

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
local pgmoon = require("pgmoon")
2+
local pgvector = require("./src/pgvector")
3+
4+
local pg = pgmoon.new({
5+
database = "pgvector_lua_test",
6+
user = os.getenv("USER")
7+
})
8+
9+
assert(pg:connect())
10+
assert(pg:query("CREATE EXTENSION IF NOT EXISTS vector"))
11+
pgvector.setup_vector(pg)
12+
13+
local vec = pg:query("SELECT $1::vector::text", pgvector.new({1, 2, 3}))[1]["text"]
14+
assert(vec == "[1,2,3]")
15+
16+
local vec = pg:query("SELECT '[1,2,3]'::vector")[1]["vector"]
17+
assert(#vec == 3)
18+
assert(vec[1] == 1)
19+
assert(vec[2] == 2)
20+
assert(vec[3] == 3)
21+
22+
local vec = pg:query("SELECT $1::halfvec::text", pgvector.halfvec({1, 2, 3}))[1]["text"]
23+
assert(vec == "[1,2,3]")
24+
25+
local vec = pg:query("SELECT '[1,2,3]'::halfvec")[1]["halfvec"]
26+
assert(#vec == 3)
27+
assert(vec[1] == 1)
28+
assert(vec[2] == 2)
29+
assert(vec[3] == 3)
30+
31+
local vec = pg:query("SELECT $1::sparsevec::text", pgvector.sparsevec({[1] = 1, [3] = 2, [5] = 3}, 6))[1]["text"]
32+
assert(vec == "{1:1,3:2,5:3}/6")
33+
34+
local vec = pg:query("SELECT '{1:1,3:2,5:3}/6'::sparsevec")[1]["sparsevec"]
35+
assert(vec["elements"][1] == 1)
36+
assert(vec["elements"][2] == nil)
37+
assert(vec["elements"][3] == 2)
38+
assert(vec["elements"][4] == nil)
39+
assert(vec["elements"][5] == 3)
40+
assert(vec["elements"][6] == nil)
41+
assert(vec["dim"] == 6)

0 commit comments

Comments
 (0)