Skip to content

Commit da3870d

Browse files
committed
Updated tests for JRuby
1 parent c58ee4e commit da3870d

File tree

5 files changed

+13
-6
lines changed

5 files changed

+13
-6
lines changed

Gemfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ gemspec
44

55
gem "rake"
66
gem "minitest"
7-
gem "numo-narray"
8-
gem "pg"
7+
gem "numo-narray", platform: :ruby
8+
gem "pg", platform: :ruby
9+
gem "jdbc-postgres", platform: :jruby
910
gem "sequel"
1011
gem "logger"

lib/sequel/plugins/pgvector.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ def []=(k, v)
7676

7777
def [](k)
7878
if self.class.vector_columns.key?(k.to_sym)
79-
::Pgvector.decode(super)
79+
# to_s needed for JRuby
80+
::Pgvector.decode(super.to_s)
8081
else
8182
super
8283
end

test/pg_test.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
class PgTest < Minitest::Test
44
def setup
5+
skip if RUBY_PLATFORM == "java"
6+
57
conn.exec("DELETE FROM pg_items")
68
end
79

test/sequel_test.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
require_relative "test_helper"
22

3-
DB = Sequel.connect("postgres://localhost/pgvector_ruby_test")
3+
adapter = RUBY_PLATFORM == "java" ? "jdbc:postgresql" : "postgres"
4+
DB = Sequel.connect("#{adapter}://localhost/pgvector_ruby_test")
45

56
if ENV["VERBOSE"]
67
require "logger"
@@ -35,14 +36,14 @@ def test_dataset
3536
items.insert(embedding: Pgvector.encode([1, 1, 1]))
3637
items.multi_insert([{embedding: "[2,2,2]"}, {embedding: "[1,1,2]"}])
3738
results = items.order(Sequel.lit("embedding <-> ?", Pgvector.encode([1, 1, 1]))).limit(5)
38-
assert_equal [[1, 1, 1], [1, 1, 2], [2, 2, 2]], results.map { |r| Pgvector.decode(r[:embedding]) }
39+
assert_equal [[1, 1, 1], [1, 1, 2], [2, 2, 2]], results.map { |r| Pgvector.decode(r[:embedding].to_s) }
3940
end
4041

4142
def test_extension
4243
items.insert(embedding: Pgvector.encode([1, 1, 1]))
4344
items.multi_insert([{embedding: "[2,2,2]"}, {embedding: "[1,1,2]"}])
4445
results = items.extension(:pgvector).nearest_neighbors(:embedding, [1, 1, 1], distance: "euclidean").limit(5)
45-
assert_equal [[1, 1, 1], [1, 1, 2], [2, 2, 2]], results.map { |r| Pgvector.decode(r[:embedding]) }
46+
assert_equal [[1, 1, 1], [1, 1, 2], [2, 2, 2]], results.map { |r| Pgvector.decode(r[:embedding].to_s) }
4647
end
4748

4849
def test_model_vector_euclidean

test/vector_test.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ def test_to_a
1212
end
1313

1414
def test_numo
15+
skip if RUBY_PLATFORM == "java"
16+
1517
a = Pgvector::Vector.new([1, 2, 3])
1618
b = Pgvector::Vector.new(Numo::NArray.cast([1, 2, 3]))
1719
assert_equal a.to_s, b.to_s

0 commit comments

Comments
 (0)