diff options
author | Håvard Pettersen <havardpe@oath.com> | 2021-09-30 09:56:09 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2021-09-30 09:56:09 +0000 |
commit | b0013e8204c9fdf2ad266b124ff36e7efbbd28de (patch) | |
tree | b3fc005dbc26dfffccb3b31951cdca66ccc0eb21 /eval | |
parent | fff135ac0ccd2ae07edc49857abf7c305b2ac3a5 (diff) |
fix test after review
Diffstat (limited to 'eval')
-rw-r--r-- | eval/src/tests/instruction/best_similarity_function/best_similarity_function_test.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/eval/src/tests/instruction/best_similarity_function/best_similarity_function_test.cpp b/eval/src/tests/instruction/best_similarity_function/best_similarity_function_test.cpp index 058b0f82678..68cdd28fc1c 100644 --- a/eval/src/tests/instruction/best_similarity_function/best_similarity_function_test.cpp +++ b/eval/src/tests/instruction/best_similarity_function/best_similarity_function_test.cpp @@ -94,6 +94,12 @@ TEST(BestSimilarityFunctionTest, allow_full_reduce_for_outer_dimension) { verify(gen_int8("d8", 3), gen_int8("b5_2d8", 7), my_min_hamming); } +vespalib::string inv_max_sim = "reduce(reduce(a*b,sum,b),max,d)"; + +TEST(BestSimilarityFunctionTest, dimensions_can_be_inverted_if_best_dimension_is_sparse) { + verify(gen_float("b8", 3), gen_float("b8d5_2", 7), inv_max_sim); +} + //----------------------------------------------------------------------------- TEST(BestSimilarityFunctionTest, cell_type_must_match_operation) { @@ -101,23 +107,19 @@ TEST(BestSimilarityFunctionTest, cell_type_must_match_operation) { verify(gen_float("d8", 3), gen_float("b5_2d8", 7), min_hamming, false); } -vespalib::string max_sim_2d_dist = "reduce(reduce(a*b,sum,d,e),max,b)"; - TEST(BestSimilarityFunctionTest, similarity_must_use_1d_vector) { + vespalib::string max_sim_2d_dist = "reduce(reduce(a*b,sum,d,e),max,b)"; verify(gen_float("d8_1", 3), gen_float("b5d8_1", 7), max_sim, false); verify(gen_float("d8e1", 3), gen_float("b5d8e1", 7), max_sim_2d_dist, false); } -vespalib::string inv_max_sim = "reduce(reduce(a*b,sum,b),max,d)"; - TEST(BestSimilarityFunctionTest, similarity_dimension_must_be_inner) { verify(gen_float("d8e3", 3), gen_float("b5d8", 7), max_sim, false); - verify(gen_float("d8", 3), gen_float("b5d8", 7), inv_max_sim, false); + verify(gen_float("b8", 3), gen_float("b8d5", 7), inv_max_sim, false); } -vespalib::string max_sim_2d_best = "reduce(reduce(a*b,sum,d),max,a,b)"; - TEST(BestSimilarityFunctionTest, alternatives_must_use_a_single_dimension) { + vespalib::string max_sim_2d_best = "reduce(reduce(a*b,sum,d),max,a,b)"; verify(gen_float("d8", 3), gen_float("a1b5d8", 7), max_sim_2d_best, false); } @@ -127,20 +129,25 @@ TEST(BestSimilarityFunctionTest, alternatives_dimension_can_not_be_common) { TEST(BestSimilarityFunctionTest, extra_common_nontrivial_dimensions_not_allowed) { verify(gen_float("a3d8", 3), gen_float("a3b5d8", 7), max_sim, false); + verify(gen_float("a3_2d8", 3), gen_float("a3_2b5d8", 7), max_sim, false); } TEST(BestSimilarityFunctionTest, secondary_tensor_must_not_contain_extra_nontrivial_dimensions) { verify(gen_float("d8", 3), gen_float("a2b5d8", 7), max_sim, false); + verify(gen_float("d8", 3), gen_float("a2_1b5d8", 7), max_sim, false); } //----------------------------------------------------------------------------- -vespalib::string other_join = "reduce(reduce(a+b,sum,d),max,b)"; -vespalib::string mismatch_best = "reduce(reduce(a*b,sum,d),min,b)"; - TEST(BestSimilarityFunctionTest, similar_expressions_are_not_optimized) { + vespalib::string other_join = "reduce(reduce(a+b,sum,d),max,b)"; + vespalib::string other_reduce = "reduce(reduce(a*b,min,d),max,b)"; + vespalib::string mismatch_best_sim = "reduce(reduce(a*b,sum,d),min,b)"; + vespalib::string mismatch_best_hamming = "reduce(reduce(hamming(a,b),sum,d),max,b)"; verify(gen_float("d8", 3), gen_float("b5d8", 7), other_join, false); - verify(gen_float("d8", 3), gen_float("b5d8", 7), mismatch_best, false); + verify(gen_float("d8", 3), gen_float("b5d8", 7), other_reduce, false); + verify(gen_float("d8", 3), gen_float("b5d8", 7), mismatch_best_sim, false); + verify(gen_int8("d8", 3), gen_int8("b5d8", 7), mismatch_best_hamming, false); } //----------------------------------------------------------------------------- |