From ddf4de17beb3aa6c90727f2fb101df023a95628c Mon Sep 17 00:00:00 2001 From: krunal Date: Wed, 25 Oct 2023 20:41:46 +0530 Subject: [PATCH] adding test for negative ranges --- test/collection_faceting_test.cpp | 66 +++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/test/collection_faceting_test.cpp b/test/collection_faceting_test.cpp index 9dcd868b..3126b047 100644 --- a/test/collection_faceting_test.cpp +++ b/test/collection_faceting_test.cpp @@ -1766,6 +1766,72 @@ TEST_F(CollectionFacetingTest, RangeFacetRangeLabelWithSpace) { ASSERT_EQ("small tvs with display size", results["facet_counts"][0]["counts"][0]["value"]); } +TEST_F(CollectionFacetingTest, RangeFacetRangeNegativeRanges) { + std::vector fields = {field("team", field_types::STRING, false), + field("nrr", field_types::FLOAT, true),}; + Collection* coll1 = collectionManager.create_collection( + "coll1", 1, fields, "", 0, "", + {},{}).get(); + + nlohmann::json doc; + doc["id"] = "0"; + doc["team"] = "india"; + doc["nrr"] = 1.353; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "1"; + doc["team"] = "australia"; + doc["nrr"] = -0.193; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "2"; + doc["team"] = "pakistan"; + doc["nrr"] = -0.400; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "3"; + doc["team"] = "afghanistan"; + doc["nrr"] = -0.969; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "4"; + doc["team"] = "srilanka"; + doc["nrr"] = -1.048; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "5"; + doc["team"] = "england"; + doc["nrr"] = -1.248; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "6"; + doc["team"] = "bangladesh"; + doc["nrr"] = -1.253; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + doc["id"] = "7"; + doc["team"] = "new zealand"; + doc["nrr"] = 1.481; + ASSERT_TRUE(coll1->add(doc.dump()).ok()); + + auto results = coll1->search("*", {}, + "", {"nrr(poor:[-1.5,-1], decent:[-1,0], good:[0,2])"}, + {}, {2}, 10, + 1, FREQUENCY, {true}, + 10, spp::sparse_hash_set(), + spp::sparse_hash_set(), 10, "", 30, 4, "", 10, {}, {}, {}, 0, + "", "", {}, 1000, + true, false, true, "", true).get(); + + ASSERT_EQ(3, results["facet_counts"][0]["counts"].size()); + ASSERT_EQ(3, (int) results["facet_counts"][0]["counts"][0]["count"]); + ASSERT_EQ("poor", results["facet_counts"][0]["counts"][0]["value"]); + ASSERT_EQ(3, (int) results["facet_counts"][0]["counts"][1]["count"]); + ASSERT_EQ("decent", results["facet_counts"][0]["counts"][1]["value"]); + ASSERT_EQ(2, (int) results["facet_counts"][0]["counts"][2]["count"]); + ASSERT_EQ("good", results["facet_counts"][0]["counts"][2]["value"]); +} + TEST_F(CollectionFacetingTest, SampleFacetCounts) { nlohmann::json schema = R"({ "name": "coll1",