summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-02-01 20:52:04 +0000
committerArne Juul <arnej@verizonmedia.com>2021-02-02 10:03:57 +0000
commit6895870413a8f96bd8b4d8f78dff8d4a6d0ac10c (patch)
tree57b3c3714fa4a0d9bed7627c42f1a741f53b65e8 /eval
parentaa6da1cc2a019a1ada7f6d11ad2f9f56240027a5 (diff)
extend with add_variants with GenSpec
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/test/eval_fixture.cpp17
-rw-r--r--eval/src/vespa/eval/eval/test/eval_fixture.h5
2 files changed, 22 insertions, 0 deletions
diff --git a/eval/src/vespa/eval/eval/test/eval_fixture.cpp b/eval/src/vespa/eval/eval/test/eval_fixture.cpp
index 9b1789fbeea..966954b9026 100644
--- a/eval/src/vespa/eval/eval/test/eval_fixture.cpp
+++ b/eval/src/vespa/eval/eval/test/eval_fixture.cpp
@@ -184,6 +184,23 @@ EvalFixture::ParamRepo::add_dense(const std::vector<std::pair<vespalib::string,
return *this;
}
+// produce 4 variants: float/double * mutable/const
+EvalFixture::ParamRepo &
+EvalFixture::ParamRepo::add_variants(const vespalib::string &name_base,
+ const GenSpec &spec)
+{
+ auto name_f = name_base + "_f";
+ auto name_m = "@" + name_base;
+ auto name_m_f = "@" + name_base + "_f";
+ auto dbl_ts = spec.cpy().cells_double().gen();
+ auto flt_ts = spec.cpy().cells_float().gen();
+ add(name_base, dbl_ts);
+ add(name_f, flt_ts);
+ add_mutable(name_m, dbl_ts);
+ add_mutable(name_m_f, flt_ts);
+ return *this;
+}
+
void
EvalFixture::detect_param_tampering(const ParamRepo &param_repo, bool allow_mutable) const
{
diff --git a/eval/src/vespa/eval/eval/test/eval_fixture.h b/eval/src/vespa/eval/eval/test/eval_fixture.h
index dc49cf7e4dc..44adaca3298 100644
--- a/eval/src/vespa/eval/eval/test/eval_fixture.h
+++ b/eval/src/vespa/eval/eval/test/eval_fixture.h
@@ -10,6 +10,7 @@
#include <vespa/vespalib/util/stash.h>
#include <set>
#include <functional>
+#include "gen_spec.h"
namespace vespalib::eval::test {
@@ -40,6 +41,10 @@ public:
ParamRepo &add_matrix(const char *d1, size_t s1, const char *d2, size_t s2, gen_fun_t gen = gen_N);
ParamRepo &add_cube(const char *d1, size_t s1, const char *d2, size_t s2, const char *d3, size_t s3, gen_fun_t gen = gen_N);
ParamRepo &add_dense(const std::vector<std::pair<vespalib::string, size_t> > &dims, gen_fun_t gen = gen_N);
+
+ // produce 4 variants: float/double * mutable/const
+ ParamRepo &add_variants(const vespalib::string &name_base,
+ const GenSpec &spec);
~ParamRepo() {}
};