mirror of
https://github.com/NVIDIA/nvbench.git
synced 2026-04-20 14:58:54 +00:00
Add nvbench::runner.
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <nvbench/axes_metadata.cuh>
|
||||
#include <nvbench/type_list.cuh>
|
||||
#include <nvbench/runner.cuh>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -31,7 +32,7 @@ namespace nvbench
|
||||
* @tparam TypeAxes A `nvbench::type_list` of `nvbench::type_list`s. See the
|
||||
* [README](../README.md) for more details.
|
||||
*/
|
||||
template <typename KernelGenerator, typename TypeAxes>
|
||||
template <typename KernelGenerator, typename TypeAxes = nvbench::type_list<>>
|
||||
struct benchmark final : public benchmark_base
|
||||
{
|
||||
using kernel_generator = KernelGenerator;
|
||||
@@ -53,6 +54,13 @@ private:
|
||||
{
|
||||
m_axes.template set_type_axes_names<type_axes>(std::move(names));
|
||||
}
|
||||
|
||||
void do_run() override
|
||||
{
|
||||
nvbench::runner<benchmark> runner{*this};
|
||||
runner.generate_states();
|
||||
runner.run();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace nvbench
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include <nvbench/axes_metadata.cuh>
|
||||
#include <nvbench/state.cuh>
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace nvbench
|
||||
{
|
||||
|
||||
template <typename BenchmarkType>
|
||||
struct runner;
|
||||
|
||||
/**
|
||||
* Hold runtime benchmark information and provides public customization API for
|
||||
* the `NVBENCH_CREATE` macros.
|
||||
@@ -24,12 +30,6 @@ struct benchmark_base
|
||||
|
||||
[[nodiscard]] const std::string &get_name() const { return m_name; }
|
||||
|
||||
// Convenience API for a single type_axis.
|
||||
benchmark_base &set_type_axes_name(std::string name)
|
||||
{
|
||||
return this->set_type_axes_names({std::move(name)});
|
||||
}
|
||||
|
||||
benchmark_base &set_type_axes_names(std::vector<std::string> names)
|
||||
{
|
||||
this->do_set_type_axes_names(std::move(names));
|
||||
@@ -72,13 +72,30 @@ struct benchmark_base
|
||||
return m_axes;
|
||||
}
|
||||
|
||||
[[nodiscard]] const std::vector<std::vector<nvbench::state>> &
|
||||
get_states() const
|
||||
{
|
||||
return m_states;
|
||||
}
|
||||
[[nodiscard]] std::vector<std::vector<nvbench::state>> &get_states()
|
||||
{
|
||||
return m_states;
|
||||
}
|
||||
|
||||
void run() { this->do_run(); }
|
||||
|
||||
protected:
|
||||
template <typename BenchmarkType>
|
||||
friend struct runner;
|
||||
|
||||
std::string m_name;
|
||||
nvbench::axes_metadata m_axes;
|
||||
std::vector<std::vector<nvbench::state>> m_states;
|
||||
|
||||
private:
|
||||
// route this through a virtual so the templated subclass can inject type info
|
||||
// route these through virtuals so the templated subclass can inject type info
|
||||
virtual void do_set_type_axes_names(std::vector<std::string> names) = 0;
|
||||
virtual void do_run() = 0;
|
||||
};
|
||||
|
||||
} // namespace nvbench
|
||||
|
||||
45
nvbench/callable.cuh
Normal file
45
nvbench/callable.cuh
Normal file
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
#include <nvbench/type_list.cuh>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace nvbench
|
||||
{
|
||||
struct state;
|
||||
}
|
||||
|
||||
// Define a simple callable wrapper around a function. This allows the function
|
||||
// to be used as a class template parameter. Intended for use with kernel
|
||||
// generators and `NVBENCH_CREATE` macros.
|
||||
#define NVBENCH_DEFINE_UNIQUE_CALLABLE(function) \
|
||||
NVBENCH_DEFINE_CALLABLE(function, NVBENCH_UNIQUE_CALLABLE_NAME(function))
|
||||
|
||||
#define NVBENCH_DEFINE_CALLABLE(function, callable_name) \
|
||||
struct callable_name \
|
||||
{ \
|
||||
void operator()(nvbench::state &state, nvbench::type_list<>) \
|
||||
{ \
|
||||
function(state); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NVBENCH_DEFINE_UNIQUE_CALLABLE_TEMPLATE(function) \
|
||||
NVBENCH_DEFINE_CALLABLE_TEMPLATE(function, \
|
||||
NVBENCH_UNIQUE_CALLABLE_NAME(function))
|
||||
|
||||
#define NVBENCH_DEFINE_CALLABLE_TEMPLATE(function, callable_name) \
|
||||
struct callable_name \
|
||||
{ \
|
||||
template <typename... Ts> \
|
||||
void operator()(nvbench::state &state, nvbench::type_list<Ts...>) \
|
||||
{ \
|
||||
function(state, nvbench::type_list<Ts...>{}); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define NVBENCH_UNIQUE_CALLABLE_NAME(function) \
|
||||
NVBENCH_UNIQUE_CALLABLE_NAME_IMPL(function, __LINE__)
|
||||
|
||||
#define NVBENCH_UNIQUE_CALLABLE_NAME_IMPL(function, unique_id) \
|
||||
callable_name##_callable_##unique_id
|
||||
@@ -55,11 +55,13 @@ state_generator::create(const axes_metadata &axes)
|
||||
}
|
||||
});
|
||||
|
||||
// Sort type axes by index:
|
||||
// Reverse sort type axes by index. This way the state_generator's cartesian
|
||||
// product of the type axes values will be enumerated in the same order as
|
||||
// nvbench::tl::cartesian_product<type_axes>.
|
||||
std::sort(type_axes.begin(),
|
||||
type_axes.end(),
|
||||
[](const auto &axis_1, const auto &axis_2) {
|
||||
return axis_1.get().get_axis_index() <
|
||||
return axis_1.get().get_axis_index() >
|
||||
axis_2.get().get_axis_index();
|
||||
});
|
||||
|
||||
@@ -127,11 +129,11 @@ state_generator::create(const axes_metadata &axes)
|
||||
axes.get_string_axis(axis_info.axis).get_value(axis_info.index));
|
||||
break;
|
||||
} // switch (type)
|
||||
} // for (axis_info : current_indices)
|
||||
} // for (axis_info : current_indices)
|
||||
states.push_back(std::move(state));
|
||||
} // for non_type_sg configs
|
||||
} // for type_sg configs
|
||||
} // scope break
|
||||
} // for type_sg configs
|
||||
} // scope break
|
||||
|
||||
// phew.
|
||||
return result;
|
||||
|
||||
53
nvbench/runner.cuh
Normal file
53
nvbench/runner.cuh
Normal file
@@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
|
||||
#include <nvbench/detail/state_generator.cuh>
|
||||
|
||||
#include <stdexcept>
|
||||
#include <vector>
|
||||
|
||||
namespace nvbench
|
||||
{
|
||||
|
||||
template <typename BenchmarkType>
|
||||
struct runner
|
||||
{
|
||||
using benchmark_type = BenchmarkType;
|
||||
using kernel_generator = typename benchmark_type::kernel_generator;
|
||||
using type_configs = typename benchmark_type::type_configs;
|
||||
static constexpr std::size_t num_type_configs =
|
||||
benchmark_type::num_type_configs;
|
||||
|
||||
explicit runner(benchmark_type &bench)
|
||||
: m_benchmark{bench}
|
||||
{}
|
||||
|
||||
void generate_states()
|
||||
{
|
||||
m_benchmark.m_states =
|
||||
nvbench::detail::state_generator::create(m_benchmark.m_axes);
|
||||
}
|
||||
|
||||
void run()
|
||||
{
|
||||
auto states_iter = m_benchmark.m_states.begin();
|
||||
if (states_iter + num_type_configs != m_benchmark.m_states.end())
|
||||
{
|
||||
throw std::runtime_error("State vector doesn't match type_configs.");
|
||||
}
|
||||
|
||||
nvbench::tl::foreach<type_configs>(
|
||||
[&states_iter](auto type_config_wrapper) {
|
||||
using type_config = typename decltype(type_config_wrapper)::type;
|
||||
for (nvbench::state &cur_state : *states_iter)
|
||||
{
|
||||
kernel_generator{}(cur_state, type_config{});
|
||||
}
|
||||
states_iter++;
|
||||
});
|
||||
}
|
||||
|
||||
private:
|
||||
benchmark_type &m_benchmark;
|
||||
};
|
||||
|
||||
} // namespace nvbench
|
||||
@@ -29,6 +29,18 @@ struct state
|
||||
[[nodiscard]] const std::string &
|
||||
get_string(const std::string &axis_name) const;
|
||||
|
||||
void skip(std::string reason) { m_skip_reason = std::move(reason); }
|
||||
[[nodiscard]] bool is_skipped() const { return !m_skip_reason.empty(); }
|
||||
[[nodiscard]] const std::string &get_skip_reason() const
|
||||
{
|
||||
return m_skip_reason;
|
||||
}
|
||||
|
||||
[[nodiscard]] const named_values &get_axis_values() const
|
||||
{
|
||||
return m_axis_values;
|
||||
}
|
||||
|
||||
protected:
|
||||
friend struct nvbench::detail::state_generator;
|
||||
|
||||
@@ -39,6 +51,7 @@ protected:
|
||||
{}
|
||||
|
||||
nvbench::named_values m_axis_values;
|
||||
std::string m_skip_reason;
|
||||
};
|
||||
|
||||
} // namespace nvbench
|
||||
|
||||
@@ -6,6 +6,7 @@ set(test_srcs
|
||||
float64_axis.cu
|
||||
int64_axis.cu
|
||||
named_values.cu
|
||||
runner.cu
|
||||
state.cu
|
||||
state_generator.cu
|
||||
string_axis.cu
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#include <nvbench/benchmark.cuh>
|
||||
|
||||
#include <nvbench/callable.cuh>
|
||||
#include <nvbench/named_values.cuh>
|
||||
#include <nvbench/state.cuh>
|
||||
#include <nvbench/type_list.cuh>
|
||||
#include <nvbench/type_strings.cuh>
|
||||
#include <nvbench/types.cuh>
|
||||
@@ -8,7 +11,53 @@
|
||||
|
||||
#include <fmt/format.h>
|
||||
|
||||
struct dummy_kernel;
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
template <typename T>
|
||||
std::vector<T> sort(std::vector<T> &&vec)
|
||||
{
|
||||
std::sort(vec.begin(), vec.end());
|
||||
return std::move(vec);
|
||||
}
|
||||
|
||||
void no_op_generator(nvbench::state &state)
|
||||
{
|
||||
fmt::memory_buffer params;
|
||||
fmt::format_to(params, "Params:");
|
||||
const auto &axis_values = state.get_axis_values();
|
||||
for (const auto &name : sort(axis_values.get_names()))
|
||||
{
|
||||
std::visit(
|
||||
[¶ms, &name](const auto &value) {
|
||||
fmt::format_to(params, " {}: {}", name, value);
|
||||
},
|
||||
axis_values.get_value(name));
|
||||
}
|
||||
|
||||
// Marking as skipped to signal that this state is run:
|
||||
state.skip(fmt::to_string(std::move(params)));
|
||||
}
|
||||
NVBENCH_DEFINE_CALLABLE(no_op_generator, no_op_callable);
|
||||
|
||||
template <typename Integer, typename Float, typename Other>
|
||||
void template_no_op_generator(nvbench::state &state,
|
||||
nvbench::type_list<Integer, Float, Other>)
|
||||
{
|
||||
ASSERT(nvbench::type_strings<Integer>::input_string() ==
|
||||
state.get_string("Integer"));
|
||||
ASSERT(nvbench::type_strings<Float>::input_string() ==
|
||||
state.get_string("Float"));
|
||||
ASSERT(nvbench::type_strings<Other>::input_string() ==
|
||||
state.get_string("Other"));
|
||||
|
||||
// Enum params using non-templated version:
|
||||
no_op_generator(state);
|
||||
}
|
||||
NVBENCH_DEFINE_CALLABLE_TEMPLATE(template_no_op_generator,
|
||||
template_no_op_callable);
|
||||
|
||||
using int_list = nvbench::type_list<nvbench::int8_t,
|
||||
nvbench::int16_t,
|
||||
@@ -20,12 +69,10 @@ using float_list = nvbench::type_list<nvbench::float32_t, nvbench::float64_t>;
|
||||
using misc_list = nvbench::type_list<bool, void>;
|
||||
|
||||
using lots_of_types_bench =
|
||||
nvbench::benchmark<dummy_kernel,
|
||||
nvbench::benchmark<template_no_op_callable,
|
||||
nvbench::type_list<int_list, float_list, misc_list>>;
|
||||
|
||||
using no_types = nvbench::type_list<>;
|
||||
|
||||
using no_types_bench = nvbench::benchmark<dummy_kernel, no_types>;
|
||||
using no_types_bench = nvbench::benchmark<no_op_callable>;
|
||||
|
||||
void test_type_axes()
|
||||
{
|
||||
@@ -172,6 +219,15 @@ void test_string_axes()
|
||||
ASSERT(axis.get_value(2) == "string c");
|
||||
}
|
||||
|
||||
void test_run()
|
||||
{
|
||||
// More exhaustive testing is in runner.cu. This just tests that the
|
||||
// runner is called.
|
||||
no_types_bench bench;
|
||||
ASSERT(bench.get_states().empty());
|
||||
bench.run();
|
||||
ASSERT(bench.get_states().size() == 1);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -181,4 +237,5 @@ int main()
|
||||
test_int64_axes();
|
||||
test_int64_power_of_two_axes();
|
||||
test_string_axes();
|
||||
test_run();
|
||||
}
|
||||
|
||||
464
testing/runner.cu
Normal file
464
testing/runner.cu
Normal file
@@ -0,0 +1,464 @@
|
||||
#include <nvbench/runner.cuh>
|
||||
|
||||
#include <nvbench/benchmark.cuh>
|
||||
#include <nvbench/callable.cuh>
|
||||
#include <nvbench/state.cuh>
|
||||
#include <nvbench/type_list.cuh>
|
||||
#include <nvbench/type_strings.cuh>
|
||||
#include <nvbench/types.cuh>
|
||||
|
||||
#include "test_asserts.cuh"
|
||||
|
||||
#include <fmt/format.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
template <typename T>
|
||||
std::vector<T> sort(std::vector<T> &&vec)
|
||||
{
|
||||
std::sort(vec.begin(), vec.end());
|
||||
return std::move(vec);
|
||||
}
|
||||
|
||||
void no_op_generator(nvbench::state &state)
|
||||
{
|
||||
fmt::memory_buffer params;
|
||||
fmt::format_to(params, "Params:");
|
||||
const auto &axis_values = state.get_axis_values();
|
||||
for (const auto &name : sort(axis_values.get_names()))
|
||||
{
|
||||
std::visit(
|
||||
[¶ms, &name](const auto &value) {
|
||||
fmt::format_to(params, " {}: {}", name, value);
|
||||
},
|
||||
axis_values.get_value(name));
|
||||
}
|
||||
|
||||
// Marking as skipped to signal that this state is run:
|
||||
state.skip(fmt::to_string(std::move(params)));
|
||||
}
|
||||
NVBENCH_DEFINE_CALLABLE(no_op_generator, no_op_callable);
|
||||
|
||||
using float_types = nvbench::type_list<nvbench::float32_t, nvbench::float64_t>;
|
||||
using int_types = nvbench::type_list<nvbench::int32_t, nvbench::int64_t>;
|
||||
using misc_types = nvbench::type_list<bool, void>;
|
||||
using type_axes = nvbench::type_list<float_types, int_types, misc_types>;
|
||||
|
||||
template <typename FloatT, typename IntT, typename MiscT>
|
||||
void template_no_op_generator(nvbench::state &state,
|
||||
nvbench::type_list<FloatT, IntT, MiscT>)
|
||||
{
|
||||
ASSERT(nvbench::type_strings<FloatT>::input_string() ==
|
||||
state.get_string("FloatT"));
|
||||
ASSERT(nvbench::type_strings<IntT>::input_string() ==
|
||||
state.get_string("IntT"));
|
||||
ASSERT(nvbench::type_strings<IntT>::input_string() ==
|
||||
state.get_string("IntT"));
|
||||
|
||||
// Enum params using non-templated version:
|
||||
no_op_generator(state);
|
||||
}
|
||||
NVBENCH_DEFINE_CALLABLE_TEMPLATE(template_no_op_generator,
|
||||
template_no_op_callable);
|
||||
|
||||
void test_empty()
|
||||
{
|
||||
using benchmark_type = nvbench::benchmark<no_op_callable>;
|
||||
using runner_type = nvbench::runner<benchmark_type>;
|
||||
|
||||
benchmark_type bench;
|
||||
runner_type runner{bench};
|
||||
|
||||
runner.generate_states();
|
||||
ASSERT(bench.get_states().size() == 1);
|
||||
ASSERT(bench.get_states().front().size() == 1);
|
||||
ASSERT(bench.get_states().front().front().is_skipped() == false);
|
||||
runner.run();
|
||||
ASSERT(bench.get_states().size() == 1);
|
||||
ASSERT(bench.get_states().front().size() == 1);
|
||||
ASSERT(bench.get_states().front().front().is_skipped() == true);
|
||||
}
|
||||
|
||||
void test_non_types()
|
||||
{
|
||||
using benchmark_type = nvbench::benchmark<no_op_callable>;
|
||||
using runner_type = nvbench::runner<benchmark_type>;
|
||||
|
||||
benchmark_type bench;
|
||||
bench.add_int64_axis("Int", {1, 2, 3});
|
||||
bench.add_float64_axis("Float", {11.0, 12.0, 13.0});
|
||||
bench.add_string_axis("String", {"One", "Two", "Three"});
|
||||
|
||||
runner_type runner{bench};
|
||||
|
||||
runner.generate_states();
|
||||
ASSERT(bench.get_states().size() == 1);
|
||||
ASSERT(bench.get_states().front().size() == 27);
|
||||
for (const auto &state : bench.get_states().front())
|
||||
{
|
||||
ASSERT(state.is_skipped() == false);
|
||||
}
|
||||
|
||||
fmt::memory_buffer buffer;
|
||||
runner.run();
|
||||
ASSERT(bench.get_states().size() == 1);
|
||||
ASSERT(bench.get_states().front().size() == 27);
|
||||
for (const auto &state : bench.get_states().front())
|
||||
{
|
||||
ASSERT(state.is_skipped() == true);
|
||||
fmt::format_to(buffer, "{}\n", state.get_skip_reason());
|
||||
}
|
||||
|
||||
const std::string ref = R"expected(Params: Float: 11 Int: 1 String: One
|
||||
Params: Float: 11 Int: 2 String: One
|
||||
Params: Float: 11 Int: 3 String: One
|
||||
Params: Float: 12 Int: 1 String: One
|
||||
Params: Float: 12 Int: 2 String: One
|
||||
Params: Float: 12 Int: 3 String: One
|
||||
Params: Float: 13 Int: 1 String: One
|
||||
Params: Float: 13 Int: 2 String: One
|
||||
Params: Float: 13 Int: 3 String: One
|
||||
Params: Float: 11 Int: 1 String: Two
|
||||
Params: Float: 11 Int: 2 String: Two
|
||||
Params: Float: 11 Int: 3 String: Two
|
||||
Params: Float: 12 Int: 1 String: Two
|
||||
Params: Float: 12 Int: 2 String: Two
|
||||
Params: Float: 12 Int: 3 String: Two
|
||||
Params: Float: 13 Int: 1 String: Two
|
||||
Params: Float: 13 Int: 2 String: Two
|
||||
Params: Float: 13 Int: 3 String: Two
|
||||
Params: Float: 11 Int: 1 String: Three
|
||||
Params: Float: 11 Int: 2 String: Three
|
||||
Params: Float: 11 Int: 3 String: Three
|
||||
Params: Float: 12 Int: 1 String: Three
|
||||
Params: Float: 12 Int: 2 String: Three
|
||||
Params: Float: 12 Int: 3 String: Three
|
||||
Params: Float: 13 Int: 1 String: Three
|
||||
Params: Float: 13 Int: 2 String: Three
|
||||
Params: Float: 13 Int: 3 String: Three
|
||||
)expected";
|
||||
|
||||
const std::string test = fmt::to_string(buffer);
|
||||
ASSERT_MSG(test == ref,
|
||||
fmt::format("Expected:\n\"{}\"\n\nActual:\n\"{}\"", ref, test));
|
||||
}
|
||||
|
||||
void test_types()
|
||||
{
|
||||
using benchmark_type = nvbench::benchmark<template_no_op_callable, type_axes>;
|
||||
using runner_type = nvbench::runner<benchmark_type>;
|
||||
|
||||
benchmark_type bench;
|
||||
bench.set_type_axes_names({"FloatT", "IntT", "MiscT"});
|
||||
|
||||
runner_type runner{bench};
|
||||
|
||||
runner.generate_states();
|
||||
ASSERT(bench.get_states().size() == 8);
|
||||
for (const auto &inner_states : bench.get_states())
|
||||
{
|
||||
ASSERT(inner_states.size() == 1);
|
||||
for (const auto &state : inner_states)
|
||||
{
|
||||
ASSERT(state.is_skipped() == false);
|
||||
}
|
||||
}
|
||||
|
||||
fmt::memory_buffer buffer;
|
||||
runner.run();
|
||||
ASSERT(bench.get_states().size() == 8);
|
||||
for (const auto &inner_states : bench.get_states())
|
||||
{
|
||||
ASSERT(inner_states.size() == 1);
|
||||
for (const auto &state : inner_states)
|
||||
{
|
||||
ASSERT(state.is_skipped() == true);
|
||||
fmt::format_to(buffer, "{}\n", state.get_skip_reason());
|
||||
}
|
||||
}
|
||||
|
||||
const std::string ref = R"expected(Params: FloatT: F32 IntT: I32 MiscT: bool
|
||||
Params: FloatT: F32 IntT: I32 MiscT: void
|
||||
Params: FloatT: F32 IntT: I64 MiscT: bool
|
||||
Params: FloatT: F32 IntT: I64 MiscT: void
|
||||
Params: FloatT: F64 IntT: I32 MiscT: bool
|
||||
Params: FloatT: F64 IntT: I32 MiscT: void
|
||||
Params: FloatT: F64 IntT: I64 MiscT: bool
|
||||
Params: FloatT: F64 IntT: I64 MiscT: void
|
||||
)expected";
|
||||
|
||||
const std::string test = fmt::to_string(buffer);
|
||||
ASSERT_MSG(test == ref,
|
||||
fmt::format("Expected:\n\"{}\"\n\nActual:\n\"{}\"", ref, test));
|
||||
}
|
||||
|
||||
void test_both()
|
||||
{
|
||||
using benchmark_type = nvbench::benchmark<template_no_op_callable, type_axes>;
|
||||
using runner_type = nvbench::runner<benchmark_type>;
|
||||
|
||||
benchmark_type bench;
|
||||
bench.set_type_axes_names({"FloatT", "IntT", "MiscT"});
|
||||
bench.add_int64_axis("Int", {1, 2, 3});
|
||||
bench.add_float64_axis("Float", {11.0, 12.0, 13.0});
|
||||
bench.add_string_axis("String", {"One", "Two", "Three"});
|
||||
|
||||
runner_type runner{bench};
|
||||
|
||||
runner.generate_states();
|
||||
ASSERT(bench.get_states().size() == 8);
|
||||
for (const auto &inner_states : bench.get_states())
|
||||
{
|
||||
ASSERT(inner_states.size() == 27);
|
||||
for (const auto &state : inner_states)
|
||||
{
|
||||
ASSERT(state.is_skipped() == false);
|
||||
}
|
||||
}
|
||||
|
||||
fmt::memory_buffer buffer;
|
||||
runner.run();
|
||||
ASSERT(bench.get_states().size() == 8);
|
||||
for (const auto &inner_states : bench.get_states())
|
||||
{
|
||||
ASSERT(inner_states.size() == 27);
|
||||
for (const auto &state : inner_states)
|
||||
{
|
||||
ASSERT(state.is_skipped() == true);
|
||||
fmt::format_to(buffer, "{}\n", state.get_skip_reason());
|
||||
}
|
||||
}
|
||||
|
||||
const std::string ref =
|
||||
R"expected(Params: Float: 11 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 1 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 2 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F32 Int: 3 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I32 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I32 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I64 MiscT: bool String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: One
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: Two
|
||||
Params: Float: 11 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 11 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 12 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 1 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 2 IntT: I64 MiscT: void String: Three
|
||||
Params: Float: 13 FloatT: F64 Int: 3 IntT: I64 MiscT: void String: Three
|
||||
)expected";
|
||||
|
||||
const std::string test = fmt::to_string(buffer);
|
||||
ASSERT_MSG(test == ref,
|
||||
fmt::format("Expected:\n\"{}\"\n\nActual:\n\"{}\"", ref, test));
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test_empty();
|
||||
test_non_types();
|
||||
test_types();
|
||||
test_both();
|
||||
}
|
||||
@@ -333,42 +333,42 @@ void test_create_with_types()
|
||||
| 33 | 0 | F32 | I32 | void | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 34 | 0 | F32 | I32 | void | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 35 | 0 | F32 | I32 | void | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 36 | 1 | F64 | I32 | void | 3.14 | 2 | 1024 | Recursive |
|
||||
| 37 | 1 | F64 | I32 | void | 6.28 | 2 | 1024 | Recursive |
|
||||
| 38 | 1 | F64 | I32 | void | 3.14 | 3 | 1024 | Recursive |
|
||||
| 39 | 1 | F64 | I32 | void | 6.28 | 3 | 1024 | Recursive |
|
||||
| 40 | 1 | F64 | I32 | void | 3.14 | 4 | 1024 | Recursive |
|
||||
| 41 | 1 | F64 | I32 | void | 6.28 | 4 | 1024 | Recursive |
|
||||
| 42 | 1 | F64 | I32 | void | 3.14 | 2 | 32768 | Recursive |
|
||||
| 43 | 1 | F64 | I32 | void | 6.28 | 2 | 32768 | Recursive |
|
||||
| 44 | 1 | F64 | I32 | void | 3.14 | 3 | 32768 | Recursive |
|
||||
| 45 | 1 | F64 | I32 | void | 6.28 | 3 | 32768 | Recursive |
|
||||
| 46 | 1 | F64 | I32 | void | 3.14 | 4 | 32768 | Recursive |
|
||||
| 47 | 1 | F64 | I32 | void | 6.28 | 4 | 32768 | Recursive |
|
||||
| 48 | 1 | F64 | I32 | void | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 49 | 1 | F64 | I32 | void | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 50 | 1 | F64 | I32 | void | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 51 | 1 | F64 | I32 | void | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 52 | 1 | F64 | I32 | void | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 53 | 1 | F64 | I32 | void | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 54 | 1 | F64 | I32 | void | 3.14 | 2 | 1024 | Iterative |
|
||||
| 55 | 1 | F64 | I32 | void | 6.28 | 2 | 1024 | Iterative |
|
||||
| 56 | 1 | F64 | I32 | void | 3.14 | 3 | 1024 | Iterative |
|
||||
| 57 | 1 | F64 | I32 | void | 6.28 | 3 | 1024 | Iterative |
|
||||
| 58 | 1 | F64 | I32 | void | 3.14 | 4 | 1024 | Iterative |
|
||||
| 59 | 1 | F64 | I32 | void | 6.28 | 4 | 1024 | Iterative |
|
||||
| 60 | 1 | F64 | I32 | void | 3.14 | 2 | 32768 | Iterative |
|
||||
| 61 | 1 | F64 | I32 | void | 6.28 | 2 | 32768 | Iterative |
|
||||
| 62 | 1 | F64 | I32 | void | 3.14 | 3 | 32768 | Iterative |
|
||||
| 63 | 1 | F64 | I32 | void | 6.28 | 3 | 32768 | Iterative |
|
||||
| 64 | 1 | F64 | I32 | void | 3.14 | 4 | 32768 | Iterative |
|
||||
| 65 | 1 | F64 | I32 | void | 6.28 | 4 | 32768 | Iterative |
|
||||
| 66 | 1 | F64 | I32 | void | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 67 | 1 | F64 | I32 | void | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 68 | 1 | F64 | I32 | void | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 69 | 1 | F64 | I32 | void | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 70 | 1 | F64 | I32 | void | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 71 | 1 | F64 | I32 | void | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 36 | 1 | F32 | I32 | bool | 3.14 | 2 | 1024 | Recursive |
|
||||
| 37 | 1 | F32 | I32 | bool | 6.28 | 2 | 1024 | Recursive |
|
||||
| 38 | 1 | F32 | I32 | bool | 3.14 | 3 | 1024 | Recursive |
|
||||
| 39 | 1 | F32 | I32 | bool | 6.28 | 3 | 1024 | Recursive |
|
||||
| 40 | 1 | F32 | I32 | bool | 3.14 | 4 | 1024 | Recursive |
|
||||
| 41 | 1 | F32 | I32 | bool | 6.28 | 4 | 1024 | Recursive |
|
||||
| 42 | 1 | F32 | I32 | bool | 3.14 | 2 | 32768 | Recursive |
|
||||
| 43 | 1 | F32 | I32 | bool | 6.28 | 2 | 32768 | Recursive |
|
||||
| 44 | 1 | F32 | I32 | bool | 3.14 | 3 | 32768 | Recursive |
|
||||
| 45 | 1 | F32 | I32 | bool | 6.28 | 3 | 32768 | Recursive |
|
||||
| 46 | 1 | F32 | I32 | bool | 3.14 | 4 | 32768 | Recursive |
|
||||
| 47 | 1 | F32 | I32 | bool | 6.28 | 4 | 32768 | Recursive |
|
||||
| 48 | 1 | F32 | I32 | bool | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 49 | 1 | F32 | I32 | bool | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 50 | 1 | F32 | I32 | bool | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 51 | 1 | F32 | I32 | bool | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 52 | 1 | F32 | I32 | bool | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 53 | 1 | F32 | I32 | bool | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 54 | 1 | F32 | I32 | bool | 3.14 | 2 | 1024 | Iterative |
|
||||
| 55 | 1 | F32 | I32 | bool | 6.28 | 2 | 1024 | Iterative |
|
||||
| 56 | 1 | F32 | I32 | bool | 3.14 | 3 | 1024 | Iterative |
|
||||
| 57 | 1 | F32 | I32 | bool | 6.28 | 3 | 1024 | Iterative |
|
||||
| 58 | 1 | F32 | I32 | bool | 3.14 | 4 | 1024 | Iterative |
|
||||
| 59 | 1 | F32 | I32 | bool | 6.28 | 4 | 1024 | Iterative |
|
||||
| 60 | 1 | F32 | I32 | bool | 3.14 | 2 | 32768 | Iterative |
|
||||
| 61 | 1 | F32 | I32 | bool | 6.28 | 2 | 32768 | Iterative |
|
||||
| 62 | 1 | F32 | I32 | bool | 3.14 | 3 | 32768 | Iterative |
|
||||
| 63 | 1 | F32 | I32 | bool | 6.28 | 3 | 32768 | Iterative |
|
||||
| 64 | 1 | F32 | I32 | bool | 3.14 | 4 | 32768 | Iterative |
|
||||
| 65 | 1 | F32 | I32 | bool | 6.28 | 4 | 32768 | Iterative |
|
||||
| 66 | 1 | F32 | I32 | bool | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 67 | 1 | F32 | I32 | bool | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 68 | 1 | F32 | I32 | bool | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 69 | 1 | F32 | I32 | bool | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 70 | 1 | F32 | I32 | bool | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 71 | 1 | F32 | I32 | bool | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 72 | 2 | F32 | I64 | void | 3.14 | 2 | 1024 | Recursive |
|
||||
| 73 | 2 | F32 | I64 | void | 6.28 | 2 | 1024 | Recursive |
|
||||
| 74 | 2 | F32 | I64 | void | 3.14 | 3 | 1024 | Recursive |
|
||||
@@ -405,78 +405,78 @@ void test_create_with_types()
|
||||
| 105 | 2 | F32 | I64 | void | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 106 | 2 | F32 | I64 | void | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 107 | 2 | F32 | I64 | void | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 108 | 3 | F64 | I64 | void | 3.14 | 2 | 1024 | Recursive |
|
||||
| 109 | 3 | F64 | I64 | void | 6.28 | 2 | 1024 | Recursive |
|
||||
| 110 | 3 | F64 | I64 | void | 3.14 | 3 | 1024 | Recursive |
|
||||
| 111 | 3 | F64 | I64 | void | 6.28 | 3 | 1024 | Recursive |
|
||||
| 112 | 3 | F64 | I64 | void | 3.14 | 4 | 1024 | Recursive |
|
||||
| 113 | 3 | F64 | I64 | void | 6.28 | 4 | 1024 | Recursive |
|
||||
| 114 | 3 | F64 | I64 | void | 3.14 | 2 | 32768 | Recursive |
|
||||
| 115 | 3 | F64 | I64 | void | 6.28 | 2 | 32768 | Recursive |
|
||||
| 116 | 3 | F64 | I64 | void | 3.14 | 3 | 32768 | Recursive |
|
||||
| 117 | 3 | F64 | I64 | void | 6.28 | 3 | 32768 | Recursive |
|
||||
| 118 | 3 | F64 | I64 | void | 3.14 | 4 | 32768 | Recursive |
|
||||
| 119 | 3 | F64 | I64 | void | 6.28 | 4 | 32768 | Recursive |
|
||||
| 120 | 3 | F64 | I64 | void | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 121 | 3 | F64 | I64 | void | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 122 | 3 | F64 | I64 | void | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 123 | 3 | F64 | I64 | void | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 124 | 3 | F64 | I64 | void | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 125 | 3 | F64 | I64 | void | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 126 | 3 | F64 | I64 | void | 3.14 | 2 | 1024 | Iterative |
|
||||
| 127 | 3 | F64 | I64 | void | 6.28 | 2 | 1024 | Iterative |
|
||||
| 128 | 3 | F64 | I64 | void | 3.14 | 3 | 1024 | Iterative |
|
||||
| 129 | 3 | F64 | I64 | void | 6.28 | 3 | 1024 | Iterative |
|
||||
| 130 | 3 | F64 | I64 | void | 3.14 | 4 | 1024 | Iterative |
|
||||
| 131 | 3 | F64 | I64 | void | 6.28 | 4 | 1024 | Iterative |
|
||||
| 132 | 3 | F64 | I64 | void | 3.14 | 2 | 32768 | Iterative |
|
||||
| 133 | 3 | F64 | I64 | void | 6.28 | 2 | 32768 | Iterative |
|
||||
| 134 | 3 | F64 | I64 | void | 3.14 | 3 | 32768 | Iterative |
|
||||
| 135 | 3 | F64 | I64 | void | 6.28 | 3 | 32768 | Iterative |
|
||||
| 136 | 3 | F64 | I64 | void | 3.14 | 4 | 32768 | Iterative |
|
||||
| 137 | 3 | F64 | I64 | void | 6.28 | 4 | 32768 | Iterative |
|
||||
| 138 | 3 | F64 | I64 | void | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 139 | 3 | F64 | I64 | void | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 140 | 3 | F64 | I64 | void | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 141 | 3 | F64 | I64 | void | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 142 | 3 | F64 | I64 | void | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 143 | 3 | F64 | I64 | void | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 144 | 4 | F32 | I32 | bool | 3.14 | 2 | 1024 | Recursive |
|
||||
| 145 | 4 | F32 | I32 | bool | 6.28 | 2 | 1024 | Recursive |
|
||||
| 146 | 4 | F32 | I32 | bool | 3.14 | 3 | 1024 | Recursive |
|
||||
| 147 | 4 | F32 | I32 | bool | 6.28 | 3 | 1024 | Recursive |
|
||||
| 148 | 4 | F32 | I32 | bool | 3.14 | 4 | 1024 | Recursive |
|
||||
| 149 | 4 | F32 | I32 | bool | 6.28 | 4 | 1024 | Recursive |
|
||||
| 150 | 4 | F32 | I32 | bool | 3.14 | 2 | 32768 | Recursive |
|
||||
| 151 | 4 | F32 | I32 | bool | 6.28 | 2 | 32768 | Recursive |
|
||||
| 152 | 4 | F32 | I32 | bool | 3.14 | 3 | 32768 | Recursive |
|
||||
| 153 | 4 | F32 | I32 | bool | 6.28 | 3 | 32768 | Recursive |
|
||||
| 154 | 4 | F32 | I32 | bool | 3.14 | 4 | 32768 | Recursive |
|
||||
| 155 | 4 | F32 | I32 | bool | 6.28 | 4 | 32768 | Recursive |
|
||||
| 156 | 4 | F32 | I32 | bool | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 157 | 4 | F32 | I32 | bool | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 158 | 4 | F32 | I32 | bool | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 159 | 4 | F32 | I32 | bool | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 160 | 4 | F32 | I32 | bool | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 161 | 4 | F32 | I32 | bool | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 162 | 4 | F32 | I32 | bool | 3.14 | 2 | 1024 | Iterative |
|
||||
| 163 | 4 | F32 | I32 | bool | 6.28 | 2 | 1024 | Iterative |
|
||||
| 164 | 4 | F32 | I32 | bool | 3.14 | 3 | 1024 | Iterative |
|
||||
| 165 | 4 | F32 | I32 | bool | 6.28 | 3 | 1024 | Iterative |
|
||||
| 166 | 4 | F32 | I32 | bool | 3.14 | 4 | 1024 | Iterative |
|
||||
| 167 | 4 | F32 | I32 | bool | 6.28 | 4 | 1024 | Iterative |
|
||||
| 168 | 4 | F32 | I32 | bool | 3.14 | 2 | 32768 | Iterative |
|
||||
| 169 | 4 | F32 | I32 | bool | 6.28 | 2 | 32768 | Iterative |
|
||||
| 170 | 4 | F32 | I32 | bool | 3.14 | 3 | 32768 | Iterative |
|
||||
| 171 | 4 | F32 | I32 | bool | 6.28 | 3 | 32768 | Iterative |
|
||||
| 172 | 4 | F32 | I32 | bool | 3.14 | 4 | 32768 | Iterative |
|
||||
| 173 | 4 | F32 | I32 | bool | 6.28 | 4 | 32768 | Iterative |
|
||||
| 174 | 4 | F32 | I32 | bool | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 175 | 4 | F32 | I32 | bool | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 176 | 4 | F32 | I32 | bool | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 177 | 4 | F32 | I32 | bool | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 178 | 4 | F32 | I32 | bool | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 179 | 4 | F32 | I32 | bool | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 108 | 3 | F32 | I64 | bool | 3.14 | 2 | 1024 | Recursive |
|
||||
| 109 | 3 | F32 | I64 | bool | 6.28 | 2 | 1024 | Recursive |
|
||||
| 110 | 3 | F32 | I64 | bool | 3.14 | 3 | 1024 | Recursive |
|
||||
| 111 | 3 | F32 | I64 | bool | 6.28 | 3 | 1024 | Recursive |
|
||||
| 112 | 3 | F32 | I64 | bool | 3.14 | 4 | 1024 | Recursive |
|
||||
| 113 | 3 | F32 | I64 | bool | 6.28 | 4 | 1024 | Recursive |
|
||||
| 114 | 3 | F32 | I64 | bool | 3.14 | 2 | 32768 | Recursive |
|
||||
| 115 | 3 | F32 | I64 | bool | 6.28 | 2 | 32768 | Recursive |
|
||||
| 116 | 3 | F32 | I64 | bool | 3.14 | 3 | 32768 | Recursive |
|
||||
| 117 | 3 | F32 | I64 | bool | 6.28 | 3 | 32768 | Recursive |
|
||||
| 118 | 3 | F32 | I64 | bool | 3.14 | 4 | 32768 | Recursive |
|
||||
| 119 | 3 | F32 | I64 | bool | 6.28 | 4 | 32768 | Recursive |
|
||||
| 120 | 3 | F32 | I64 | bool | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 121 | 3 | F32 | I64 | bool | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 122 | 3 | F32 | I64 | bool | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 123 | 3 | F32 | I64 | bool | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 124 | 3 | F32 | I64 | bool | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 125 | 3 | F32 | I64 | bool | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 126 | 3 | F32 | I64 | bool | 3.14 | 2 | 1024 | Iterative |
|
||||
| 127 | 3 | F32 | I64 | bool | 6.28 | 2 | 1024 | Iterative |
|
||||
| 128 | 3 | F32 | I64 | bool | 3.14 | 3 | 1024 | Iterative |
|
||||
| 129 | 3 | F32 | I64 | bool | 6.28 | 3 | 1024 | Iterative |
|
||||
| 130 | 3 | F32 | I64 | bool | 3.14 | 4 | 1024 | Iterative |
|
||||
| 131 | 3 | F32 | I64 | bool | 6.28 | 4 | 1024 | Iterative |
|
||||
| 132 | 3 | F32 | I64 | bool | 3.14 | 2 | 32768 | Iterative |
|
||||
| 133 | 3 | F32 | I64 | bool | 6.28 | 2 | 32768 | Iterative |
|
||||
| 134 | 3 | F32 | I64 | bool | 3.14 | 3 | 32768 | Iterative |
|
||||
| 135 | 3 | F32 | I64 | bool | 6.28 | 3 | 32768 | Iterative |
|
||||
| 136 | 3 | F32 | I64 | bool | 3.14 | 4 | 32768 | Iterative |
|
||||
| 137 | 3 | F32 | I64 | bool | 6.28 | 4 | 32768 | Iterative |
|
||||
| 138 | 3 | F32 | I64 | bool | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 139 | 3 | F32 | I64 | bool | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 140 | 3 | F32 | I64 | bool | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 141 | 3 | F32 | I64 | bool | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 142 | 3 | F32 | I64 | bool | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 143 | 3 | F32 | I64 | bool | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 144 | 4 | F64 | I32 | void | 3.14 | 2 | 1024 | Recursive |
|
||||
| 145 | 4 | F64 | I32 | void | 6.28 | 2 | 1024 | Recursive |
|
||||
| 146 | 4 | F64 | I32 | void | 3.14 | 3 | 1024 | Recursive |
|
||||
| 147 | 4 | F64 | I32 | void | 6.28 | 3 | 1024 | Recursive |
|
||||
| 148 | 4 | F64 | I32 | void | 3.14 | 4 | 1024 | Recursive |
|
||||
| 149 | 4 | F64 | I32 | void | 6.28 | 4 | 1024 | Recursive |
|
||||
| 150 | 4 | F64 | I32 | void | 3.14 | 2 | 32768 | Recursive |
|
||||
| 151 | 4 | F64 | I32 | void | 6.28 | 2 | 32768 | Recursive |
|
||||
| 152 | 4 | F64 | I32 | void | 3.14 | 3 | 32768 | Recursive |
|
||||
| 153 | 4 | F64 | I32 | void | 6.28 | 3 | 32768 | Recursive |
|
||||
| 154 | 4 | F64 | I32 | void | 3.14 | 4 | 32768 | Recursive |
|
||||
| 155 | 4 | F64 | I32 | void | 6.28 | 4 | 32768 | Recursive |
|
||||
| 156 | 4 | F64 | I32 | void | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 157 | 4 | F64 | I32 | void | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 158 | 4 | F64 | I32 | void | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 159 | 4 | F64 | I32 | void | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 160 | 4 | F64 | I32 | void | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 161 | 4 | F64 | I32 | void | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 162 | 4 | F64 | I32 | void | 3.14 | 2 | 1024 | Iterative |
|
||||
| 163 | 4 | F64 | I32 | void | 6.28 | 2 | 1024 | Iterative |
|
||||
| 164 | 4 | F64 | I32 | void | 3.14 | 3 | 1024 | Iterative |
|
||||
| 165 | 4 | F64 | I32 | void | 6.28 | 3 | 1024 | Iterative |
|
||||
| 166 | 4 | F64 | I32 | void | 3.14 | 4 | 1024 | Iterative |
|
||||
| 167 | 4 | F64 | I32 | void | 6.28 | 4 | 1024 | Iterative |
|
||||
| 168 | 4 | F64 | I32 | void | 3.14 | 2 | 32768 | Iterative |
|
||||
| 169 | 4 | F64 | I32 | void | 6.28 | 2 | 32768 | Iterative |
|
||||
| 170 | 4 | F64 | I32 | void | 3.14 | 3 | 32768 | Iterative |
|
||||
| 171 | 4 | F64 | I32 | void | 6.28 | 3 | 32768 | Iterative |
|
||||
| 172 | 4 | F64 | I32 | void | 3.14 | 4 | 32768 | Iterative |
|
||||
| 173 | 4 | F64 | I32 | void | 6.28 | 4 | 32768 | Iterative |
|
||||
| 174 | 4 | F64 | I32 | void | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 175 | 4 | F64 | I32 | void | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 176 | 4 | F64 | I32 | void | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 177 | 4 | F64 | I32 | void | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 178 | 4 | F64 | I32 | void | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 179 | 4 | F64 | I32 | void | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 180 | 5 | F64 | I32 | bool | 3.14 | 2 | 1024 | Recursive |
|
||||
| 181 | 5 | F64 | I32 | bool | 6.28 | 2 | 1024 | Recursive |
|
||||
| 182 | 5 | F64 | I32 | bool | 3.14 | 3 | 1024 | Recursive |
|
||||
@@ -513,42 +513,42 @@ void test_create_with_types()
|
||||
| 213 | 5 | F64 | I32 | bool | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 214 | 5 | F64 | I32 | bool | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 215 | 5 | F64 | I32 | bool | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 216 | 6 | F32 | I64 | bool | 3.14 | 2 | 1024 | Recursive |
|
||||
| 217 | 6 | F32 | I64 | bool | 6.28 | 2 | 1024 | Recursive |
|
||||
| 218 | 6 | F32 | I64 | bool | 3.14 | 3 | 1024 | Recursive |
|
||||
| 219 | 6 | F32 | I64 | bool | 6.28 | 3 | 1024 | Recursive |
|
||||
| 220 | 6 | F32 | I64 | bool | 3.14 | 4 | 1024 | Recursive |
|
||||
| 221 | 6 | F32 | I64 | bool | 6.28 | 4 | 1024 | Recursive |
|
||||
| 222 | 6 | F32 | I64 | bool | 3.14 | 2 | 32768 | Recursive |
|
||||
| 223 | 6 | F32 | I64 | bool | 6.28 | 2 | 32768 | Recursive |
|
||||
| 224 | 6 | F32 | I64 | bool | 3.14 | 3 | 32768 | Recursive |
|
||||
| 225 | 6 | F32 | I64 | bool | 6.28 | 3 | 32768 | Recursive |
|
||||
| 226 | 6 | F32 | I64 | bool | 3.14 | 4 | 32768 | Recursive |
|
||||
| 227 | 6 | F32 | I64 | bool | 6.28 | 4 | 32768 | Recursive |
|
||||
| 228 | 6 | F32 | I64 | bool | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 229 | 6 | F32 | I64 | bool | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 230 | 6 | F32 | I64 | bool | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 231 | 6 | F32 | I64 | bool | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 232 | 6 | F32 | I64 | bool | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 233 | 6 | F32 | I64 | bool | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 234 | 6 | F32 | I64 | bool | 3.14 | 2 | 1024 | Iterative |
|
||||
| 235 | 6 | F32 | I64 | bool | 6.28 | 2 | 1024 | Iterative |
|
||||
| 236 | 6 | F32 | I64 | bool | 3.14 | 3 | 1024 | Iterative |
|
||||
| 237 | 6 | F32 | I64 | bool | 6.28 | 3 | 1024 | Iterative |
|
||||
| 238 | 6 | F32 | I64 | bool | 3.14 | 4 | 1024 | Iterative |
|
||||
| 239 | 6 | F32 | I64 | bool | 6.28 | 4 | 1024 | Iterative |
|
||||
| 240 | 6 | F32 | I64 | bool | 3.14 | 2 | 32768 | Iterative |
|
||||
| 241 | 6 | F32 | I64 | bool | 6.28 | 2 | 32768 | Iterative |
|
||||
| 242 | 6 | F32 | I64 | bool | 3.14 | 3 | 32768 | Iterative |
|
||||
| 243 | 6 | F32 | I64 | bool | 6.28 | 3 | 32768 | Iterative |
|
||||
| 244 | 6 | F32 | I64 | bool | 3.14 | 4 | 32768 | Iterative |
|
||||
| 245 | 6 | F32 | I64 | bool | 6.28 | 4 | 32768 | Iterative |
|
||||
| 246 | 6 | F32 | I64 | bool | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 247 | 6 | F32 | I64 | bool | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 248 | 6 | F32 | I64 | bool | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 249 | 6 | F32 | I64 | bool | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 250 | 6 | F32 | I64 | bool | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 251 | 6 | F32 | I64 | bool | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 216 | 6 | F64 | I64 | void | 3.14 | 2 | 1024 | Recursive |
|
||||
| 217 | 6 | F64 | I64 | void | 6.28 | 2 | 1024 | Recursive |
|
||||
| 218 | 6 | F64 | I64 | void | 3.14 | 3 | 1024 | Recursive |
|
||||
| 219 | 6 | F64 | I64 | void | 6.28 | 3 | 1024 | Recursive |
|
||||
| 220 | 6 | F64 | I64 | void | 3.14 | 4 | 1024 | Recursive |
|
||||
| 221 | 6 | F64 | I64 | void | 6.28 | 4 | 1024 | Recursive |
|
||||
| 222 | 6 | F64 | I64 | void | 3.14 | 2 | 32768 | Recursive |
|
||||
| 223 | 6 | F64 | I64 | void | 6.28 | 2 | 32768 | Recursive |
|
||||
| 224 | 6 | F64 | I64 | void | 3.14 | 3 | 32768 | Recursive |
|
||||
| 225 | 6 | F64 | I64 | void | 6.28 | 3 | 32768 | Recursive |
|
||||
| 226 | 6 | F64 | I64 | void | 3.14 | 4 | 32768 | Recursive |
|
||||
| 227 | 6 | F64 | I64 | void | 6.28 | 4 | 32768 | Recursive |
|
||||
| 228 | 6 | F64 | I64 | void | 3.14 | 2 | 1048576 | Recursive |
|
||||
| 229 | 6 | F64 | I64 | void | 6.28 | 2 | 1048576 | Recursive |
|
||||
| 230 | 6 | F64 | I64 | void | 3.14 | 3 | 1048576 | Recursive |
|
||||
| 231 | 6 | F64 | I64 | void | 6.28 | 3 | 1048576 | Recursive |
|
||||
| 232 | 6 | F64 | I64 | void | 3.14 | 4 | 1048576 | Recursive |
|
||||
| 233 | 6 | F64 | I64 | void | 6.28 | 4 | 1048576 | Recursive |
|
||||
| 234 | 6 | F64 | I64 | void | 3.14 | 2 | 1024 | Iterative |
|
||||
| 235 | 6 | F64 | I64 | void | 6.28 | 2 | 1024 | Iterative |
|
||||
| 236 | 6 | F64 | I64 | void | 3.14 | 3 | 1024 | Iterative |
|
||||
| 237 | 6 | F64 | I64 | void | 6.28 | 3 | 1024 | Iterative |
|
||||
| 238 | 6 | F64 | I64 | void | 3.14 | 4 | 1024 | Iterative |
|
||||
| 239 | 6 | F64 | I64 | void | 6.28 | 4 | 1024 | Iterative |
|
||||
| 240 | 6 | F64 | I64 | void | 3.14 | 2 | 32768 | Iterative |
|
||||
| 241 | 6 | F64 | I64 | void | 6.28 | 2 | 32768 | Iterative |
|
||||
| 242 | 6 | F64 | I64 | void | 3.14 | 3 | 32768 | Iterative |
|
||||
| 243 | 6 | F64 | I64 | void | 6.28 | 3 | 32768 | Iterative |
|
||||
| 244 | 6 | F64 | I64 | void | 3.14 | 4 | 32768 | Iterative |
|
||||
| 245 | 6 | F64 | I64 | void | 6.28 | 4 | 32768 | Iterative |
|
||||
| 246 | 6 | F64 | I64 | void | 3.14 | 2 | 1048576 | Iterative |
|
||||
| 247 | 6 | F64 | I64 | void | 6.28 | 2 | 1048576 | Iterative |
|
||||
| 248 | 6 | F64 | I64 | void | 3.14 | 3 | 1048576 | Iterative |
|
||||
| 249 | 6 | F64 | I64 | void | 6.28 | 3 | 1048576 | Iterative |
|
||||
| 250 | 6 | F64 | I64 | void | 3.14 | 4 | 1048576 | Iterative |
|
||||
| 251 | 6 | F64 | I64 | void | 6.28 | 4 | 1048576 | Iterative |
|
||||
| 252 | 7 | F64 | I64 | bool | 3.14 | 2 | 1024 | Recursive |
|
||||
| 253 | 7 | F64 | I64 | bool | 6.28 | 2 | 1024 | Recursive |
|
||||
| 254 | 7 | F64 | I64 | bool | 3.14 | 3 | 1024 | Recursive |
|
||||
|
||||
Reference in New Issue
Block a user