From 0f2b7c3afa9c73f9d0efed662e98be84a84ba12f Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Mon, 15 Apr 2024 00:53:44 -0700 Subject: [PATCH] Improved tests [skip ci] --- test/expected/sparsevec_functions.out | 34 +++++++++++++++++++++++++-- test/sql/sparsevec_functions.sql | 7 +++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/test/expected/sparsevec_functions.out b/test/expected/sparsevec_functions.out index 27359ec..581e74c 100644 --- a/test/expected/sparsevec_functions.out +++ b/test/expected/sparsevec_functions.out @@ -190,6 +190,18 @@ SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{}/2'); NaN (1 row) +SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1,2:1}/2'); + cosine_distance +----------------- + 0 +(1 row) + +SELECT cosine_distance('{1:1}/2'::sparsevec, '{2:2}/2'); + cosine_distance +----------------- + 1 +(1 row) + SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1,2:-1}/2'); cosine_distance ----------------- @@ -202,14 +214,32 @@ SELECT cosine_distance('{1:2}/2'::sparsevec, '{2:2}/2'); 1 (1 row) +SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); +ERROR: different sparsevec dimensions 2 and 1 +SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1.1,2:1.1}/2'); + cosine_distance +----------------- + 0 +(1 row) + +SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1.1,2:-1.1}/2'); + cosine_distance +----------------- + 2 +(1 row) + +SELECT cosine_distance('{1:3e38}/1'::sparsevec, '{1:3e38}/1'); + cosine_distance +----------------- + NaN +(1 row) + SELECT cosine_distance('{}/1'::sparsevec, '{}/1'); cosine_distance ----------------- NaN (1 row) -SELECT cosine_distance('{1:2}/2'::sparsevec, '{1:1}/3'); -ERROR: different sparsevec dimensions 2 and 3 SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); l1_distance ------------- diff --git a/test/sql/sparsevec_functions.sql b/test/sql/sparsevec_functions.sql index 6fb5cdf..c61ce81 100644 --- a/test/sql/sparsevec_functions.sql +++ b/test/sql/sparsevec_functions.sql @@ -35,10 +35,15 @@ SELECT sparsevec_negative_inner_product('{1:1,2:2}/2', '{1:2,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'); +SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1,2:1}/2'); +SELECT cosine_distance('{1:1}/2'::sparsevec, '{2:2}/2'); SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1,2:-1}/2'); SELECT cosine_distance('{1:2}/2'::sparsevec, '{2:2}/2'); +SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); +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 cosine_distance('{1:2}/2'::sparsevec, '{1:1}/3'); SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); SELECT l1_distance('{}/2'::sparsevec, '{2:1}/2');