From 2d33e95a7356b754c928f1393c589f497f7db833 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Mon, 15 Apr 2024 01:04:16 -0700 Subject: [PATCH] Added tests for operators [skip ci] --- test/expected/sparsevec_functions.out | 12 ++++++++++++ test/expected/vector_functions.out | 18 ++++++++++++++++++ test/sql/sparsevec_functions.sql | 2 ++ test/sql/vector_functions.sql | 3 +++ 4 files changed, 35 insertions(+) diff --git a/test/expected/sparsevec_functions.out b/test/expected/sparsevec_functions.out index 50ec509..0b76d54 100644 --- a/test/expected/sparsevec_functions.out +++ b/test/expected/sparsevec_functions.out @@ -186,6 +186,12 @@ SELECT inner_product('{1:1,3:3,5:5}/5'::sparsevec, '{2:4,3:6,4:8}/5'); 18 (1 row) +SELECT '{1:1,2:2}/2'::sparsevec <#> '{1:3,2:4}/2'; + ?column? +---------- + -11 +(1 row) + SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); cosine_distance ----------------- @@ -248,6 +254,12 @@ SELECT cosine_distance('{}/1'::sparsevec, '{}/1'); NaN (1 row) +SELECT '{1:1,2:2}/2'::sparsevec <=> '{1:2,2:4}/2'; + ?column? +---------- + 0 +(1 row) + SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); l1_distance ------------- diff --git a/test/expected/vector_functions.out b/test/expected/vector_functions.out index 309bd21..66949fe 100644 --- a/test/expected/vector_functions.out +++ b/test/expected/vector_functions.out @@ -202,6 +202,12 @@ SELECT l2_distance('[3e38]'::vector, '[-3e38]'); Infinity (1 row) +SELECT '[0,0]'::vector <-> '[3,4]'; + ?column? +---------- + 5 +(1 row) + SELECT inner_product('[1,2]'::vector, '[3,4]'); inner_product --------------- @@ -216,6 +222,12 @@ SELECT inner_product('[3e38]'::vector, '[3e38]'); Infinity (1 row) +SELECT '[1,2]'::vector <#> '[3,4]'; + ?column? +---------- + -11 +(1 row) + SELECT cosine_distance('[1,2]'::vector, '[2,4]'); cosine_distance ----------------- @@ -266,6 +278,12 @@ SELECT cosine_distance('[3e38]'::vector, '[3e38]'); NaN (1 row) +SELECT '[1,2]'::vector <=> '[2,4]'; + ?column? +---------- + 0 +(1 row) + SELECT l1_distance('[0,0]'::vector, '[3,4]'); l1_distance ------------- diff --git a/test/sql/sparsevec_functions.sql b/test/sql/sparsevec_functions.sql index ebcc8c0..e65ac46 100644 --- a/test/sql/sparsevec_functions.sql +++ b/test/sql/sparsevec_functions.sql @@ -34,6 +34,7 @@ SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); SELECT inner_product('{1:3e38}/1'::sparsevec, '{1:3e38}/1'); SELECT inner_product('{1:1,3:3,5:5}/5'::sparsevec, '{2:4,3:6,4:8}/5'); +SELECT '{1:1,2:2}/2'::sparsevec <#> '{1:3,2:4}/2'; SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{}/2'); @@ -46,6 +47,7 @@ SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1.1,2:1.1}/2'); SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1.1,2:-1.1}/2'); SELECT cosine_distance('{1:3e38}/1'::sparsevec, '{1:3e38}/1'); SELECT cosine_distance('{}/1'::sparsevec, '{}/1'); +SELECT '{1:1,2:2}/2'::sparsevec <=> '{1:2,2:4}/2'; SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); SELECT l1_distance('{}/2'::sparsevec, '{2:1}/2'); diff --git a/test/sql/vector_functions.sql b/test/sql/vector_functions.sql index 1cbb7e2..6c08320 100644 --- a/test/sql/vector_functions.sql +++ b/test/sql/vector_functions.sql @@ -46,10 +46,12 @@ SELECT l2_distance('[0,0]'::vector, '[3,4]'); SELECT l2_distance('[0,0]'::vector, '[0,1]'); SELECT l2_distance('[1,2]'::vector, '[3]'); SELECT l2_distance('[3e38]'::vector, '[-3e38]'); +SELECT '[0,0]'::vector <-> '[3,4]'; SELECT inner_product('[1,2]'::vector, '[3,4]'); SELECT inner_product('[1,2]'::vector, '[3]'); SELECT inner_product('[3e38]'::vector, '[3e38]'); +SELECT '[1,2]'::vector <#> '[3,4]'; SELECT cosine_distance('[1,2]'::vector, '[2,4]'); SELECT cosine_distance('[1,2]'::vector, '[0,0]'); @@ -60,6 +62,7 @@ SELECT cosine_distance('[1,2]'::vector, '[3]'); SELECT cosine_distance('[1,1]'::vector, '[1.1,1.1]'); SELECT cosine_distance('[1,1]'::vector, '[-1.1,-1.1]'); SELECT cosine_distance('[3e38]'::vector, '[3e38]'); +SELECT '[1,2]'::vector <=> '[2,4]'; SELECT l1_distance('[0,0]'::vector, '[3,4]'); SELECT l1_distance('[0,0]'::vector, '[0,1]');