summaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/eval/value_cache/value_cache_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vespalib/src/tests/eval/value_cache/value_cache_test.cpp')
-rw-r--r--vespalib/src/tests/eval/value_cache/value_cache_test.cpp67
1 files changed, 0 insertions, 67 deletions
diff --git a/vespalib/src/tests/eval/value_cache/value_cache_test.cpp b/vespalib/src/tests/eval/value_cache/value_cache_test.cpp
deleted file mode 100644
index ff991382a3a..00000000000
--- a/vespalib/src/tests/eval/value_cache/value_cache_test.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/testkit/test_kit.h>
-#include <vespa/vespalib/eval/value_cache/constant_value_cache.h>
-#include <vespa/vespalib/eval/value_cache/constant_value.h>
-#include <vespa/vespalib/eval/value.h>
-#include <vespa/vespalib/eval/value_type.h>
-
-using namespace vespalib::eval;
-
-struct MyValue : ConstantValue {
- DoubleValue my_value;
- ValueType my_type;
- MyValue(double val) : my_value(val), my_type(ValueType::double_type()) {}
- const ValueType &type() const override { return my_type; }
- const Value &value() const override { return my_value; }
-};
-
-struct MyFactory : ConstantValueFactory {
- mutable size_t create_cnt = 0;
- ConstantValue::UP create(const vespalib::string &path, const vespalib::string &) const override {
- ++create_cnt;
- return std::make_unique<MyValue>(double(atoi(path.c_str())));
- }
-};
-
-TEST_FF("require that values can be created", MyFactory(), ConstantValueCache(f1)) {
- ConstantValue::UP res = f2.create("1", "type");
- EXPECT_TRUE(res->type().is_double());
- EXPECT_EQUAL(1.0, res->value().as_double());
- EXPECT_EQUAL(2.0, f2.create("2", "type")->value().as_double());
- EXPECT_EQUAL(3.0, f2.create("3", "type")->value().as_double());
- EXPECT_EQUAL(3, f1.create_cnt);
-}
-
-TEST_FF("require that underlying values can be shared", MyFactory(), ConstantValueCache(f1)) {
- auto res1 = f2.create("1", "type");
- auto res2 = f2.create("2", "type");
- auto res3 = f2.create("2", "type");
- auto res4 = f2.create("2", "type");
- EXPECT_EQUAL(1.0, res1->value().as_double());
- EXPECT_EQUAL(2.0, res2->value().as_double());
- EXPECT_EQUAL(2.0, res2->value().as_double());
- EXPECT_EQUAL(2.0, res2->value().as_double());
- EXPECT_EQUAL(2, f1.create_cnt);
-}
-
-TEST_FF("require that unused values are evicted", MyFactory(), ConstantValueCache(f1)) {
- EXPECT_EQUAL(1.0, f2.create("1", "type")->value().as_double());
- EXPECT_EQUAL(2.0, f2.create("2", "type")->value().as_double());
- EXPECT_EQUAL(2.0, f2.create("2", "type")->value().as_double());
- EXPECT_EQUAL(2.0, f2.create("2", "type")->value().as_double());
- EXPECT_EQUAL(4, f1.create_cnt);
-}
-
-TEST_FF("require that type spec is part of cache key", MyFactory(), ConstantValueCache(f1)) {
- auto res1 = f2.create("1", "type");
- auto res2 = f2.create("2", "type_a");
- auto res3 = f2.create("2", "type_b");
- auto res4 = f2.create("2", "type_b");
- EXPECT_EQUAL(1.0, res1->value().as_double());
- EXPECT_EQUAL(2.0, res2->value().as_double());
- EXPECT_EQUAL(2.0, res2->value().as_double());
- EXPECT_EQUAL(2.0, res2->value().as_double());
- EXPECT_EQUAL(3, f1.create_cnt);
-}
-
-TEST_MAIN() { TEST_RUN_ALL(); }