Added tests for halfvec_avg and halfvec_accum [skip ci]

(cherry picked from commit b818ae17ec8a9f82351f9e6a994b5b271678a2b3)
This commit is contained in:
Andrew Kane
2026-09-11 13:47:34 -07:00
committed by zeekay
parent 6b0a3d559a
commit 92660f62f1
2 changed files with 54 additions and 0 deletions
+40
View File
@@ -616,8 +616,48 @@ SELECT avg(v) FROM unnest(ARRAY['[65504]'::halfvec, '[65504]']) v;
[65504]
(1 row)
SELECT halfvec_avg('{2,2,4,6}');
halfvec_avg
-------------
[1,2,3]
(1 row)
SELECT halfvec_avg('{0}');
halfvec_avg
-------------
(1 row)
SELECT halfvec_avg('{1}');
ERROR: halfvec must have at least 1 dimension
SELECT halfvec_avg('{{2,2,4,6}}');
ERROR: halfvec_avg: expected state array
SELECT halfvec_avg('{NULL,2,4,6}');
ERROR: halfvec_avg: expected state array
SELECT halfvec_avg('{}');
ERROR: halfvec_avg: expected state array
SELECT halfvec_avg(array_agg(n)) FROM generate_series(1, 16002) n;
ERROR: halfvec cannot have more than 16000 dimensions
SELECT halfvec_accum('{0}', '[1,2,3]');
halfvec_accum
---------------
{1,1,2,3}
(1 row)
SELECT halfvec_accum('{0,0,0,0}', '[1,2,3]');
halfvec_accum
---------------
{1,1,2,3}
(1 row)
SELECT halfvec_accum('{{0}}', '[1,2,3]');
ERROR: halfvec_accum: expected state array
SELECT halfvec_accum('{NULL}', '[1,2,3]');
ERROR: halfvec_accum: expected state array
SELECT halfvec_accum('{}', '[1,2,3]');
ERROR: halfvec_accum: expected state array
SELECT halfvec_accum('{0,0}', '[1,2,3]');
ERROR: expected 1 dimensions, not 3
SELECT sum(v) FROM unnest(ARRAY['[1,2,3]'::halfvec, '[3,5,7]']) v;
sum
----------
+14
View File
@@ -139,8 +139,22 @@ SELECT avg(v) FROM unnest(ARRAY['[1,2,3]'::halfvec, '[3,5,7]', NULL]) v;
SELECT avg(v) FROM unnest(ARRAY[]::halfvec[]) v;
SELECT avg(v) FROM unnest(ARRAY['[1,2]'::halfvec, '[3]']) v;
SELECT avg(v) FROM unnest(ARRAY['[65504]'::halfvec, '[65504]']) v;
SELECT halfvec_avg('{2,2,4,6}');
SELECT halfvec_avg('{0}');
SELECT halfvec_avg('{1}');
SELECT halfvec_avg('{{2,2,4,6}}');
SELECT halfvec_avg('{NULL,2,4,6}');
SELECT halfvec_avg('{}');
SELECT halfvec_avg(array_agg(n)) FROM generate_series(1, 16002) n;
SELECT halfvec_accum('{0}', '[1,2,3]');
SELECT halfvec_accum('{0,0,0,0}', '[1,2,3]');
SELECT halfvec_accum('{{0}}', '[1,2,3]');
SELECT halfvec_accum('{NULL}', '[1,2,3]');
SELECT halfvec_accum('{}', '[1,2,3]');
SELECT halfvec_accum('{0,0}', '[1,2,3]');
SELECT sum(v) FROM unnest(ARRAY['[1,2,3]'::halfvec, '[3,5,7]']) v;
SELECT sum(v) FROM unnest(ARRAY['[1,2,3]'::halfvec, '[3,5,7]', NULL]) v;
SELECT sum(v) FROM unnest(ARRAY[]::halfvec[]) v;