From 3e7ee6ea0433670c2cff751757498122665df673 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Fri, 11 Aug 2023 19:20:03 -0700 Subject: [PATCH] Simplified opclasses in TAP tests [skip ci] --- test/t/003_ivfflat_recall.pl | 15 ++++----------- test/t/005_ivfflat_query_recall.pl | 19 +++++++------------ test/t/012_hnsw_build_recall.pl | 14 ++++---------- test/t/013_hnsw_insert_recall.pl | 14 ++++---------- 4 files changed, 19 insertions(+), 43 deletions(-) diff --git a/test/t/003_ivfflat_recall.pl b/test/t/003_ivfflat_recall.pl index 9a43ca0..c1f6330 100644 --- a/test/t/003_ivfflat_recall.pl +++ b/test/t/003_ivfflat_recall.pl @@ -70,10 +70,12 @@ for (1 .. 20) # Check each index type my @operators = ("<->", "<#>", "<=>"); +my @opclasses = ("vector_l2_ops", "vector_ip_ops", "vector_cosine_ops"); -foreach (@operators) +for my $i (0 .. $#operators) { - my $operator = $_; + my $operator = $operators[$i]; + my $opclass = $opclasses[$i]; # Get exact results @expected = (); @@ -83,15 +85,6 @@ foreach (@operators) push(@expected, $res); } - my $opclass; - if ($operator eq "<->") { - $opclass = "vector_l2_ops"; - } elsif ($operator eq "<#>") { - $opclass = "vector_ip_ops"; - } else { - $opclass = "vector_cosine_ops"; - } - # Build index serially $node->safe_psql("postgres", qq( SET max_parallel_maintenance_workers = 0; diff --git a/test/t/005_ivfflat_query_recall.pl b/test/t/005_ivfflat_query_recall.pl index 0739742..1edebb3 100644 --- a/test/t/005_ivfflat_query_recall.pl +++ b/test/t/005_ivfflat_query_recall.pl @@ -18,26 +18,21 @@ $node->safe_psql("postgres", # Check each index type my @operators = ("<->", "<#>", "<=>"); -foreach (@operators) +my @opclasses = ("vector_l2_ops", "vector_ip_ops", "vector_cosine_ops"); + +for my $i (0 .. $#operators) { - my $operator = $_; + my $operator = $operators[$i]; + my $opclass = $opclasses[$i]; # Add index - my $opclass; - if ($operator eq "<->") { - $opclass = "vector_l2_ops"; - } elsif ($operator eq "<#>") { - $opclass = "vector_ip_ops"; - } else { - $opclass = "vector_cosine_ops"; - } $node->safe_psql("postgres", "CREATE INDEX ON tst USING ivfflat (v $opclass);"); # Test 100% recall for (1 .. 20) { - my $i = int(rand() * 100000); - my $query = $node->safe_psql("postgres", "SELECT v FROM tst WHERE i = $i;"); + my $id = int(rand() * 100000); + my $query = $node->safe_psql("postgres", "SELECT v FROM tst WHERE i = $id;"); my $res = $node->safe_psql("postgres", qq( SET enable_seqscan = off; SELECT v FROM tst ORDER BY v <-> '$query' LIMIT 1; diff --git a/test/t/012_hnsw_build_recall.pl b/test/t/012_hnsw_build_recall.pl index 40baae6..e9074c6 100644 --- a/test/t/012_hnsw_build_recall.pl +++ b/test/t/012_hnsw_build_recall.pl @@ -68,10 +68,12 @@ for (1 .. 20) # Check each index type my @operators = ("<->", "<#>", "<=>"); +my @opclasses = ("vector_l2_ops", "vector_ip_ops", "vector_cosine_ops"); -foreach (@operators) +for my $i (0 .. $#operators) { - my $operator = $_; + my $operator = $operators[$i]; + my $opclass = $opclasses[$i]; # Get exact results @expected = (); @@ -82,14 +84,6 @@ foreach (@operators) } # Add index - my $opclass; - if ($operator eq "<->") { - $opclass = "vector_l2_ops"; - } elsif ($operator eq "<#>") { - $opclass = "vector_ip_ops"; - } else { - $opclass = "vector_cosine_ops"; - } $node->safe_psql("postgres", "CREATE INDEX ON tst USING hnsw (v $opclass);"); my $min = $operator eq "<#>" ? 0.80 : 0.99; diff --git a/test/t/013_hnsw_insert_recall.pl b/test/t/013_hnsw_insert_recall.pl index 985b476..d0c24f8 100644 --- a/test/t/013_hnsw_insert_recall.pl +++ b/test/t/013_hnsw_insert_recall.pl @@ -65,20 +65,14 @@ for (1 .. 20) # Check each index type my @operators = ("<->", "<#>", "<=>"); +my @opclasses = ("vector_l2_ops", "vector_ip_ops", "vector_cosine_ops"); -foreach (@operators) +for my $i (0 .. $#operators) { - my $operator = $_; + my $operator = $operators[$i]; + my $opclass = $opclasses[$i]; # Add index - my $opclass; - if ($operator eq "<->") { - $opclass = "vector_l2_ops"; - } elsif ($operator eq "<#>") { - $opclass = "vector_ip_ops"; - } else { - $opclass = "vector_cosine_ops"; - } $node->safe_psql("postgres", "CREATE INDEX idx ON tst USING hnsw (v $opclass);"); # Use concurrent inserts