GCC Code Coverage Report


ernie/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
134 / 165
81.2%
Branches:
124 / 226
54.9%
Functions:
23 / 24
95.8%

util/algorithm.h
Line Branch Exec Source
1 // SPDX-License-Identifier: BSD-3-Clause
2 /// @file algorithm.h
3 /// @brief Small range helpers.
4 #pragma once
5
6 #include <algorithm>
7 #include <functional>
8 #include <ranges>
9 #include <type_traits>
10 #include <vector>
11
12 namespace ernie {
13
14 /// @return `transform` of each element of `range`, in order.
15 11055 template <std::ranges::input_range R, typename F> auto Map(const R& range, F&& transform) {
16 using Out = std::decay_t<std::invoke_result_t<F&, std::ranges::range_reference_t<const R>>>;
17
22/46
auto ernie::Map<std::span<double, 18446744073709551615ul>, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)>(std::span<double, 18446744073709551615ul> const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> >, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}>(std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> > const&, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}&&):
✓ Branch 1 taken 82 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}&&):
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)):
✓ Branch 1 taken 78 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 301 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 42 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*)() const>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*&&)() const):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::PrimId, std::allocator<ernie::PrimId> >, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}>(std::vector<ernie::PrimId, std::allocator<ernie::PrimId> > const&, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}&&):
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, unsigned int ernie::Target::*>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, unsigned int ernie::Target::*&&):
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<float, std::allocator<float> >, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)>(std::vector<float, std::allocator<float> > const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)):
✓ Branch 1 taken 112 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}&&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}&&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}&&):
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<nanobind::object, std::allocator<nanobind::object> >, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}>(std::vector<nanobind::object, std::allocator<nanobind::object> > const&, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}&&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✓ Branch 1 taken 82 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✓ Branch 1 taken 2044 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}&&):
✓ Branch 1 taken 79 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}&&):
✓ Branch 1 taken 1028 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 77 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 102 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 6962 times.
✗ Branch 2 not taken.
11055 std::vector<Out> out;
18 if constexpr (std::ranges::sized_range<R>) {
19
22/46
auto ernie::Map<std::span<double, 18446744073709551615ul>, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)>(std::span<double, 18446744073709551615ul> const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> >, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}>(std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> > const&, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}&&):
✓ Branch 1 taken 82 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}&&):
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)):
✓ Branch 1 taken 78 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 301 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 42 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*)() const>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*&&)() const):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::PrimId, std::allocator<ernie::PrimId> >, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}>(std::vector<ernie::PrimId, std::allocator<ernie::PrimId> > const&, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}&&):
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, unsigned int ernie::Target::*>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, unsigned int ernie::Target::*&&):
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<float, std::allocator<float> >, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)>(std::vector<float, std::allocator<float> > const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)):
✓ Branch 1 taken 112 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}&&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}&&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}&&):
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<nanobind::object, std::allocator<nanobind::object> >, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}>(std::vector<nanobind::object, std::allocator<nanobind::object> > const&, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}&&):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✓ Branch 1 taken 82 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✓ Branch 1 taken 2044 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}&&):
✓ Branch 1 taken 79 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}&&):
✓ Branch 1 taken 1028 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 77 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 102 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 6962 times.
✗ Branch 2 not taken.
11055 out.reserve(std::ranges::size(range));
20 }
21
60/88
auto ernie::Map<std::span<double, 18446744073709551615ul>, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)>(std::span<double, 18446744073709551615ul> const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
auto ernie::Map<std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> >, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}>(std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> > const&, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}&&):
✓ Branch 1 taken 13202 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 13202 times.
✓ Branch 4 taken 82 times.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}&&):
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 4 times.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)):
✓ Branch 1 taken 78 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 78 times.
✓ Branch 4 taken 78 times.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 26 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 26 times.
✓ Branch 4 taken 301 times.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 42 times.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*)() const>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*&&)() const):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
auto ernie::Map<std::vector<ernie::PrimId, std::allocator<ernie::PrimId> >, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}>(std::vector<ernie::PrimId, std::allocator<ernie::PrimId> > const&, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}&&):
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7 times.
✓ Branch 4 taken 7 times.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 6 times.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 17 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 17 times.
✓ Branch 4 taken 16 times.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, unsigned int ernie::Target::*>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, unsigned int ernie::Target::*&&):
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 7 times.
auto ernie::Map<std::vector<float, std::allocator<float> >, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)>(std::vector<float, std::allocator<float> > const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)):
✓ Branch 1 taken 188 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 188 times.
✓ Branch 4 taken 112 times.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}&&):
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 1 time.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}&&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
auto ernie::Map<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}&&):
✓ Branch 1 taken 40 times.
✓ Branch 2 taken 20 times.
auto ernie::Map<std::vector<nanobind::object, std::allocator<nanobind::object> >, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}>(std::vector<nanobind::object, std::allocator<nanobind::object> > const&, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}&&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 time.
✓ Branch 4 taken 2 times.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 82 times.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✓ Branch 1 taken 1822 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1822 times.
✓ Branch 4 taken 2044 times.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}&&):
✓ Branch 1 taken 79 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 79 times.
✓ Branch 4 taken 79 times.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}&&):
✓ Branch 1 taken 1028 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1028 times.
✓ Branch 4 taken 1028 times.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 77 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 77 times.
✓ Branch 4 taken 77 times.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 26 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 26 times.
✓ Branch 4 taken 102 times.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 7618 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 7618 times.
✓ Branch 4 taken 6962 times.
35301 for (auto&& element : range) {
22
20/46
auto ernie::Map<std::span<double, 18446744073709551615ul>, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)>(std::span<double, 18446744073709551615ul> const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(double)):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> >, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}>(std::vector<VkExtensionProperties, std::allocator<VkExtensionProperties> > const&, ernie::Probe(VkPhysicalDevice_T*)::{lambda(VkExtensionProperties const&)#1}&&):
✓ Branch 1 taken 13202 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::ListVulkanDevices()::{lambda(VkPhysicalDevice_T*)#1}&&):
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> >, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)>(std::vector<VkPhysicalDevice_T*, std::allocator<VkPhysicalDevice_T*> > const&, ernie::PhysicalDevice (&)(VkPhysicalDevice_T*)):
✓ Branch 1 taken 78 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToElement<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable&, ernie::Value const&)::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 26 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, ernie::ToJson[abi:cxx11](ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<ernie::Path, std::allocator<ernie::Path> > >(std::vector<ernie::Path, std::allocator<ernie::Path> > const&) const::{lambda(ernie::Path const&)#1}&&):
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Path, std::allocator<ernie::Path> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*)() const>(std::vector<ernie::Path, std::allocator<ernie::Path> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::*&&)() const):
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::PrimId, std::allocator<ernie::PrimId> >, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}>(std::vector<ernie::PrimId, std::allocator<ernie::PrimId> > const&, ernie::(anonymous namespace)::Holders(ernie::Scene const&, char const*)::{lambda(ernie::PrimId)#1}&&):
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::(anonymous namespace)::InstancerExtent(ernie::ExtentRows const&, ernie::RowRange, std::span<ernie::Box, 18446744073709551615ul>)::{lambda(unsigned int)#1}::operator()(unsigned int) const::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, ernie::ToValue<std::vector<ernie::Target, std::allocator<ernie::Target> > >(ernie::PathTable const&, std::vector<ernie::Target, std::allocator<ernie::Target> > const&)::{lambda(ernie::Target const&)#1}&&):
✓ Branch 1 taken 17 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<ernie::Target, std::allocator<ernie::Target> >, unsigned int ernie::Target::*>(std::vector<ernie::Target, std::allocator<ernie::Target> > const&, unsigned int ernie::Target::*&&):
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<float, std::allocator<float> >, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)>(std::vector<float, std::allocator<float> > const&, nlohmann::json_abi_v3_12_0::basic_json<nlohmann::json_abi_v3_12_0::ordered_map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> (&)(float)):
✓ Branch 1 taken 188 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#1}&&):
✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<int, std::allocator<int> >, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}>(std::vector<int, std::allocator<int> > const&, ernie::(anonymous namespace)::Algorithm_MapTransformsEachElementInOrder_Test::TestBody()::{lambda(int)#2}&&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, ernie::(anonymous namespace)::WriteTensor(ernie::Tensor const&)::{lambda(long)#1}&&):
✓ Branch 1 taken 40 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<nanobind::object, std::allocator<nanobind::object> >, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}>(std::vector<nanobind::object, std::allocator<nanobind::object> > const&, ernie::python::BindScene(nanobind::module_&)::{lambda(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&)#1}::operator()(ernie::Scene&, std::basic_string_view<char, std::char_traits<char> >, std::vector<nanobind::object, std::allocator<nanobind::object> > const&) const::{lambda(nanobind::object const&)#1}&&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::Instance::Instance(ernie::InstanceOptions const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, ernie::ToElement<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable&, ernie::Value const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}&&):
✓ Branch 1 taken 1822 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Queues() const::{lambda(std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > const&)#1}&&):
✓ Branch 1 taken 79 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > >, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}>(std::vector<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> >, std::allocator<std::unique_ptr<ernie::Queue, std::default_delete<ernie::Queue> > > > const&, ernie::DeviceContext::Retire(std::function<void ()>)::{lambda(auto:1 const&)#1}&&):
✓ Branch 1 taken 1028 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::DeviceContext::DeviceContext(ernie::DeviceContextOptions const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 77 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::Scene::AppliedApis[abi:cxx11](ernie::PrimId) const::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 26 times.
✗ Branch 2 not taken.
auto ernie::Map<std::vector<unsigned int, std::allocator<unsigned int> >, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}>(std::vector<unsigned int, std::allocator<unsigned int> > const&, ernie::ToValue<std::vector<unsigned int, std::allocator<unsigned int> > >(ernie::PathTable const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)::{lambda(unsigned int)#1}&&):
✓ Branch 1 taken 7618 times.
✗ Branch 2 not taken.
24250 out.push_back(std::invoke(transform, element));
23 }
24 11055 return out;
25 ✗ }
26
27 /// @brief Sorts `values` and drops repeats, as a set of indices to visit in order.
28 455 template <typename T> void SortUnique(std::vector<T>& values) {
29 455 std::ranges::sort(values);
30 455 values.erase(std::ranges::unique(values).begin(), values.end());
31 455 }
32
33 } // namespace ernie
34