| Line |
Branch |
Exec |
Source |
| 1 |
|
|
// SPDX-License-Identifier: BSD-3-Clause |
| 2 |
|
|
/// @file text.h |
| 3 |
|
|
/// @brief Small string helpers for parsing text formats. |
| 4 |
|
|
#pragma once |
| 5 |
|
|
|
| 6 |
|
|
#include <algorithm> |
| 7 |
|
|
#include <cctype> |
| 8 |
|
|
#include <cmath> |
| 9 |
|
|
#include <functional> |
| 10 |
|
|
#include <sstream> |
| 11 |
|
|
#include <stdexcept> |
| 12 |
|
|
#include <string> |
| 13 |
|
|
#include <string_view> |
| 14 |
|
|
#include <utility> |
| 15 |
|
|
#include <vector> |
| 16 |
|
|
|
| 17 |
|
|
namespace ernie { |
| 18 |
|
|
|
| 19 |
|
|
/// @brief Removes leading and trailing whitespace. |
| 20 |
|
|
/// @param text The text. |
| 21 |
|
|
/// @return The text without surrounding spaces, tabs and line breaks. |
| 22 |
|
784 |
inline std::string Trim(std::string_view text) { |
| 23 |
24/28
✓ Branch 0 taken 419 times.
✓ Branch 1 taken 178 times.
✓ Branch 2 taken 177 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 49 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 55 times.
✓ Branch 11 taken 14 times.
✓ Branch 12 taken 68 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 213 times.
✓ Branch 15 taken 395 times.
✓ Branch 16 taken 92 times.
✓ Branch 17 taken 121 times.
✓ Branch 18 taken 1 time.
✓ Branch 19 taken 91 times.
✓ Branch 20 taken 1 time.
✗ Branch 21 not taken.
✓ Branch 22 taken 16 times.
✓ Branch 23 taken 44 times.
✓ Branch 24 taken 14 times.
✓ Branch 25 taken 64 times.
✓ Branch 26 taken 54 times.
✓ Branch 27 taken 1 time.
|
1588 |
const auto space = [](unsigned char c) { return std::isspace(c) != 0; }; |
| 24 |
|
784 |
const auto begin = std::find_if_not(text.begin(), text.end(), space); |
| 25 |
|
784 |
const auto end = |
| 26 |
|
784 |
std::find_if_not(text.rbegin(), std::make_reverse_iterator(begin), space).base(); |
| 27 |
|
784 |
return std::string(begin, end); |
| 28 |
|
|
} |
| 29 |
|
|
|
| 30 |
|
|
/// @brief Converts ASCII letters to upper case. |
| 31 |
|
|
/// @param text The text. |
| 32 |
|
|
/// @return The text in capitals. |
| 33 |
|
1223 |
inline std::string ToUpper(std::string_view text) { |
| 34 |
|
1223 |
std::string upper(text); |
| 35 |
|
1223 |
std::transform(upper.begin(), upper.end(), upper.begin(), |
| 36 |
|
13990 |
[](unsigned char c) { return static_cast<char>(std::toupper(c)); }); |
| 37 |
|
1223 |
return upper; |
| 38 |
|
|
} |
| 39 |
|
|
|
| 40 |
|
|
/// @brief Converts ASCII letters to lower case. |
| 41 |
|
|
/// @param text The text. |
| 42 |
|
|
/// @return The text in small letters. |
| 43 |
|
371 |
inline std::string ToLower(std::string_view text) { |
| 44 |
|
371 |
std::string lower(text); |
| 45 |
|
371 |
std::transform(lower.begin(), lower.end(), lower.begin(), |
| 46 |
|
3166 |
[](unsigned char c) { return static_cast<char>(std::tolower(c)); }); |
| 47 |
|
371 |
return lower; |
| 48 |
|
|
} |
| 49 |
|
|
|
| 50 |
|
|
/// @return `count` bytes as lower-case hex digits, two per byte. |
| 51 |
|
82 |
inline std::string Hex(const unsigned char* bytes, std::size_t count) { |
| 52 |
|
82 |
static constexpr char kDigits[] = "0123456789abcdef"; |
| 53 |
|
82 |
std::string text; |
| 54 |
2/2
✓ Branch 0 taken 1312 times.
✓ Branch 1 taken 82 times.
|
1394 |
for (std::size_t i = 0; i < count; ++i) { |
| 55 |
1/2
✓ Branch 1 taken 1312 times.
✗ Branch 2 not taken.
|
1312 |
text += kDigits[bytes[i] >> 4]; |
| 56 |
1/2
✓ Branch 1 taken 1312 times.
✗ Branch 2 not taken.
|
2624 |
text += kDigits[bytes[i] & 15]; |
| 57 |
|
|
} |
| 58 |
|
82 |
return text; |
| 59 |
|
✗ |
} |
| 60 |
|
|
|
| 61 |
|
|
/// @return `number` as short text: "170" or "0.01", not "170.000000". |
| 62 |
|
170 |
inline std::string ToText(double number) { |
| 63 |
|
170 |
std::ostringstream text; |
| 64 |
1/2
✓ Branch 1 taken 170 times.
✗ Branch 2 not taken.
|
170 |
text << number; |
| 65 |
1/2
✓ Branch 1 taken 170 times.
✗ Branch 2 not taken.
|
340 |
return text.str(); |
| 66 |
|
170 |
} |
| 67 |
|
|
|
| 68 |
|
|
/// @brief Tests for an ASCII identifier: a letter or underscore, then letters, digits and |
| 69 |
|
|
/// underscores, whatever the locale. USD prim names and attribute name parts are identifiers. |
| 70 |
|
|
/// @param text The text. |
| 71 |
|
|
/// @return Whether it is one. |
| 72 |
|
12706 |
constexpr bool IsIdentifier(std::string_view text) { |
| 73 |
|
105526 |
const auto letter = [](char c) { |
| 74 |
3/3
✓ Branch 0 taken 68166 times.
✓ Branch 1 taken 6682 times.
✓ Branch 2 taken 17972 times.
|
92820 |
return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '_'; |
| 75 |
|
|
}; |
| 76 |
4/4
✓ Branch 0 taken 12702 times.
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 12700 times.
✓ Branch 3 taken 2 times.
|
12706 |
if (text.empty() || !letter(text.front())) { |
| 77 |
|
|
return false; |
| 78 |
|
|
} |
| 79 |
|
12700 |
return std::all_of(text.begin(), text.end(), |
| 80 |
4/4
✓ Branch 0 taken 17970 times.
✓ Branch 1 taken 62148 times.
✓ Branch 2 taken 4 times.
✓ Branch 3 taken 17966 times.
|
92818 |
[&](char c) { return letter(c) || (c >= '0' && c <= '9'); }); |
| 81 |
|
|
} |
| 82 |
|
|
|
| 83 |
|
|
/// @return The texts of `items`, each made by `text`, with `separator` between them. |
| 84 |
|
|
template <typename Range, typename Text> |
| 85 |
|
1077 |
std::string Join(const Range& items, std::string_view separator, const Text& text) { |
| 86 |
|
1077 |
std::string out; |
| 87 |
|
1077 |
bool first = true; |
| 88 |
22/42
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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>, ernie::(anonymous namespace)::Print(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> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)::{lambda(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> const&)#2}>(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> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::Print(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> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)::{lambda(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> const&)#2} const&):
✓ Branch 4 taken 1359 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2049 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1359 times.
✓ Branch 10 taken 690 times.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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>, ernie::(anonymous namespace)::UsdText(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> const&, bool)::{lambda(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> const&)#1}>(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> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::UsdText(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> const&, bool)::{lambda(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> const&)#1} const&):
✓ Branch 4 taken 26 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 56 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 26 times.
✓ Branch 10 taken 30 times.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::array<glm::vec<4, double, (glm::qualifier)0>, 4ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda<int $N0, typename $T1>(glm::vec<$N0, $T1, (glm::qualifier)0> const&)#1}>(std::array<glm::vec<4, double, (glm::qualifier)0>, 4ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda<int $N0, typename $T1>(glm::vec<$N0, $T1, (glm::qualifier)0> const&)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<double const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<double const, 18446744073709551615ul> >(std::span<double const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<double const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<double const, 18446744073709551615ul> >(std::span<double const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<float const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<float const, 18446744073709551615ul> >(std::span<float const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<float const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<float const, 18446744073709551615ul> >(std::span<float const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<int const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<int const, 18446744073709551615ul> >(std::span<int const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<int const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<int const, 18446744073709551615ul> >(std::span<int const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<ernie::EditHistory::AttributeEdit, std::allocator<ernie::EditHistory::AttributeEdit> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::EditHistory::AttributeEdit::*>(std::vector<ernie::EditHistory::AttributeEdit, std::allocator<ernie::EditHistory::AttributeEdit> > const&, std::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::EditHistory::AttributeEdit::* const&):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::* const&)() const):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<float, std::allocator<float> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> > const&) const::{lambda(auto:1)#1}>(std::vector<float, std::allocator<float> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> > const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::ArrayProblem(ernie::AttributeDef const&, ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::ArrayProblem(ernie::AttributeDef const&, ernie::Tensor const&)::{lambda(long)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::TypeText(ernie::AttributeDef const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::TypeText(ernie::AttributeDef const&)::{lambda(long)#1} const&):
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 5 times.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::app::(anonymous namespace)::AttributeText(ernie::Scene const&, ernie::PrimId, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::AttributeText(ernie::Scene const&, ernie::PrimId, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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::Join<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> > > > >(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&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 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&, std::basic_string_view<char, std::char_traits<char> >, ernie::Join<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> > > > >(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&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1} const&):
✓ Branch 0 taken 303 times.
✓ Branch 1 taken 310 times.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (std::basic_string_view<char, std::char_traits<char> >)>(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&, std::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ( const&)(std::basic_string_view<char, std::char_traits<char> >)):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, ernie::(anonymous namespace)::Strings<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&)::{lambda(std::basic_string_view<char, std::char_traits<char> >)#1}>(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::Strings<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&)::{lambda(std::basic_string_view<char, std::char_traits<char> >)#1} const&):
✓ Branch 0 taken 73 times.
✓ Branch 1 taken 26 times.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1}>(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1} const&):
✓ Branch 0 taken 49 times.
✓ Branch 1 taken 8 times.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value>, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value> > >, ernie::(anonymous namespace)::SchemaSection(ernie::SchemaDef const&, ernie::SchemaFamily const&)::{lambda(auto:1 const&)#1}>(std::vector<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value>, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value> > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::SchemaSection(ernie::SchemaDef const&, ernie::SchemaFamily const&)::{lambda(auto:1 const&)#1} const&):
✓ Branch 0 taken 11 times.
✓ Branch 1 taken 6 times.
|
4346 |
for (const auto& item : items) { |
| 89 |
25/68
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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>, ernie::(anonymous namespace)::Print(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> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)::{lambda(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> const&)#2}>(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> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::Print(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> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)::{lambda(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> const&)#2} const&):
✓ Branch 0 taken 584 times.
✓ Branch 1 taken 775 times.
✓ Branch 3 taken 1359 times.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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>, ernie::(anonymous namespace)::UsdText(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> const&, bool)::{lambda(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> const&)#1}>(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> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::UsdText(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> const&, bool)::{lambda(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> const&)#1} const&):
✓ Branch 0 taken 11 times.
✓ Branch 1 taken 15 times.
✓ Branch 3 taken 26 times.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::array<glm::vec<4, double, (glm::qualifier)0>, 4ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda<int $N0, typename $T1>(glm::vec<$N0, $T1, (glm::qualifier)0> const&)#1}>(std::array<glm::vec<4, double, (glm::qualifier)0>, 4ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda<int $N0, typename $T1>(glm::vec<$N0, $T1, (glm::qualifier)0> const&)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<double const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<double const, 18446744073709551615ul> >(std::span<double const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<double const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<double const, 18446744073709551615ul> >(std::span<double const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<float const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<float const, 18446744073709551615ul> >(std::span<float const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<float const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<float const, 18446744073709551615ul> >(std::span<float const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<int const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<int const, 18446744073709551615ul> >(std::span<int const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<int const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<int const, 18446744073709551615ul> >(std::span<int const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<ernie::EditHistory::AttributeEdit, std::allocator<ernie::EditHistory::AttributeEdit> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::EditHistory::AttributeEdit::*>(std::vector<ernie::EditHistory::AttributeEdit, std::allocator<ernie::EditHistory::AttributeEdit> > const&, std::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::EditHistory::AttributeEdit::* const&):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::* const&)() const):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<float, std::allocator<float> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> > const&) const::{lambda(auto:1)#1}>(std::vector<float, std::allocator<float> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> > const&) const::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::ArrayProblem(ernie::AttributeDef const&, ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::ArrayProblem(ernie::AttributeDef const&, ernie::Tensor const&)::{lambda(long)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::TypeText(ernie::AttributeDef const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::TypeText(ernie::AttributeDef const&)::{lambda(long)#1} const&):
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::app::(anonymous namespace)::AttributeText(ernie::Scene const&, ernie::PrimId, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::AttributeText(ernie::Scene const&, ernie::PrimId, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1)#1} const&):
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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::Join<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> > > > >(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&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 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&, std::basic_string_view<char, std::char_traits<char> >, ernie::Join<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> > > > >(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&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1} const&):
✓ Branch 0 taken 171 times.
✓ Branch 1 taken 132 times.
✓ Branch 3 taken 303 times.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (std::basic_string_view<char, std::char_traits<char> >)>(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&, std::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ( const&)(std::basic_string_view<char, std::char_traits<char> >)):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, ernie::(anonymous namespace)::Strings<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&)::{lambda(std::basic_string_view<char, std::char_traits<char> >)#1}>(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::Strings<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&)::{lambda(std::basic_string_view<char, std::char_traits<char> >)#1} const&):
✓ Branch 0 taken 26 times.
✓ Branch 1 taken 47 times.
✓ Branch 3 taken 73 times.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1}>(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1} const&):
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 41 times.
✓ Branch 3 taken 49 times.
✗ Branch 4 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value>, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value> > >, ernie::(anonymous namespace)::SchemaSection(ernie::SchemaDef const&, ernie::SchemaFamily const&)::{lambda(auto:1 const&)#1}>(std::vector<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value>, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value> > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::SchemaSection(ernie::SchemaDef const&, ernie::SchemaFamily const&)::{lambda(auto:1 const&)#1} const&):
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 5 times.
✓ Branch 3 taken 11 times.
✗ Branch 4 not taken.
|
3658 |
out += first ? std::string_view() : separator; |
| 90 |
9/34
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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>, ernie::(anonymous namespace)::Print(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> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)::{lambda(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> const&)#2}>(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> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::Print(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> const&, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)::{lambda(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> const&)#2} const&):
✓ Branch 1 taken 1359 times.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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>, ernie::(anonymous namespace)::UsdText(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> const&, bool)::{lambda(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> const&)#1}>(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> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::UsdText(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> const&, bool)::{lambda(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> const&)#1} const&):
✓ Branch 1 taken 26 times.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::array<glm::vec<4, double, (glm::qualifier)0>, 4ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda<int $N0, typename $T1>(glm::vec<$N0, $T1, (glm::qualifier)0> const&)#1}>(std::array<glm::vec<4, double, (glm::qualifier)0>, 4ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda<int $N0, typename $T1>(glm::vec<$N0, $T1, (glm::qualifier)0> const&)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<double const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<double const, 18446744073709551615ul> >(std::span<double const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<double const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<double const, 18446744073709551615ul> >(std::span<double const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<float const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<float const, 18446744073709551615ul> >(std::span<float const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<float const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<float const, 18446744073709551615ul> >(std::span<float const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::span<int const, 18446744073709551615ul>, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<int const, 18446744073709551615ul> >(std::span<int const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1}>(std::span<int const, 18446744073709551615ul> const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::span<int const, 18446744073709551615ul> >(std::span<int const, 18446744073709551615ul> const&) const::{lambda(auto:1)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<ernie::EditHistory::AttributeEdit, std::allocator<ernie::EditHistory::AttributeEdit> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::EditHistory::AttributeEdit::*>(std::vector<ernie::EditHistory::AttributeEdit, std::allocator<ernie::EditHistory::AttributeEdit> > const&, std::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::EditHistory::AttributeEdit::* const&):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& (ernie::Path::* const&)() const):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<float, std::allocator<float> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> > const&) const::{lambda(auto:1)#1}>(std::vector<float, std::allocator<float> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::ValueText(ernie::Value const&)::{lambda(auto:1 const&)#1}::operator()<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> > const&) const::{lambda(auto:1)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::ArrayProblem(ernie::AttributeDef const&, ernie::Tensor const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::ArrayProblem(ernie::AttributeDef const&, ernie::Tensor const&)::{lambda(long)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::(anonymous namespace)::TypeText(ernie::AttributeDef const&)::{lambda(long)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::TypeText(ernie::AttributeDef const&)::{lambda(long)#1} const&):
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<long, std::allocator<long> >, ernie::app::(anonymous namespace)::AttributeText(ernie::Scene const&, ernie::PrimId, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1)#1}>(std::vector<long, std::allocator<long> > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::app::(anonymous namespace)::AttributeText(ernie::Scene const&, ernie::PrimId, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1)#1} const&):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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::Join<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> > > > >(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&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 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&, std::basic_string_view<char, std::char_traits<char> >, ernie::Join<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> > > > >(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&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1} const&):
✓ Branch 1 taken 303 times.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<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> > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > (std::basic_string_view<char, std::char_traits<char> >)>(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&, std::basic_string_view<char, std::char_traits<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ( const&)(std::basic_string_view<char, std::char_traits<char> >)):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, ernie::(anonymous namespace)::Strings<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&)::{lambda(std::basic_string_view<char, std::char_traits<char> >)#1}>(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::Strings<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&)::{lambda(std::basic_string_view<char, std::char_traits<char> >)#1} const&):
✓ Branch 1 taken 73 times.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1}>(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::Join<std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > >(std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)::{lambda(auto:1 const&)#1} const&):
✓ Branch 1 taken 49 times.
✗ Branch 2 not taken.
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > ernie::Join<std::vector<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value>, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value> > >, ernie::(anonymous namespace)::SchemaSection(ernie::SchemaDef const&, ernie::SchemaFamily const&)::{lambda(auto:1 const&)#1}>(std::vector<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value>, std::allocator<std::pair<std::basic_string_view<char, std::char_traits<char> >, ernie::Value> > > const&, std::basic_string_view<char, std::char_traits<char> >, ernie::(anonymous namespace)::SchemaSection(ernie::SchemaDef const&, ernie::SchemaFamily const&)::{lambda(auto:1 const&)#1} const&):
✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
|
3305 |
out += std::invoke(text, item); |
| 91 |
|
1829 |
first = false; |
| 92 |
|
|
} |
| 93 |
|
1077 |
return out; |
| 94 |
|
✗ |
} |
| 95 |
|
|
/// @return `items`, texts already, with `separator` between them. |
| 96 |
|
318 |
template <typename Range> std::string Join(const Range& items, std::string_view separator) { |
| 97 |
1/2
✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
|
332 |
return Join(items, separator, [](const auto& item) -> std::string_view { return item; }); |
| 98 |
|
|
} |
| 99 |
|
|
|
| 100 |
|
|
/// @return `text` with every `from` replaced by `to`. |
| 101 |
|
8285 |
inline std::string Replace(std::string_view text, std::string_view from, std::string_view to) { |
| 102 |
|
8285 |
std::string out(text); |
| 103 |
2/2
✓ Branch 2 taken 505 times.
✓ Branch 3 taken 8285 times.
|
8790 |
for (std::size_t at = out.find(from); at != std::string::npos; at = out.find(from, at)) { |
| 104 |
1/2
✓ Branch 1 taken 505 times.
✗ Branch 2 not taken.
|
505 |
out.replace(at, from.size(), to); |
| 105 |
|
505 |
at += to.size(); |
| 106 |
|
|
} |
| 107 |
|
8285 |
return out; |
| 108 |
|
✗ |
} |
| 109 |
|
|
|
| 110 |
|
|
/// @return The fewest insertions, deletions and substitutions turning `a` into `b` (Levenshtein). |
| 111 |
|
36 |
inline std::size_t EditDistance(std::string_view a, std::string_view b) { |
| 112 |
|
36 |
std::vector<std::size_t> row(b.size() + 1); |
| 113 |
2/2
✓ Branch 0 taken 496 times.
✓ Branch 1 taken 36 times.
|
532 |
for (std::size_t j = 0; j < row.size(); ++j) { |
| 114 |
|
496 |
row[j] = j; |
| 115 |
|
|
} |
| 116 |
2/2
✓ Branch 0 taken 529 times.
✓ Branch 1 taken 36 times.
|
565 |
for (std::size_t i = 1; i <= a.size(); ++i) { |
| 117 |
|
529 |
std::size_t diagonal = row[0]; |
| 118 |
|
529 |
row[0] = i; |
| 119 |
2/2
✓ Branch 0 taken 6991 times.
✓ Branch 1 taken 529 times.
|
7520 |
for (std::size_t j = 1; j <= b.size(); ++j) { |
| 120 |
|
6991 |
const std::size_t above = row[j]; |
| 121 |
|
6991 |
row[j] = |
| 122 |
|
6991 |
std::min({above + 1, row[j - 1] + 1, diagonal + std::size_t{a[i - 1] != b[j - 1]}}); |
| 123 |
|
6991 |
diagonal = above; |
| 124 |
|
|
} |
| 125 |
|
|
} |
| 126 |
|
36 |
return row.back(); |
| 127 |
|
36 |
} |
| 128 |
|
|
|
| 129 |
|
|
/// @brief Reads numbers separated by blanks, line breaks or commas, in turn. |
| 130 |
|
16 |
class NumberReader { |
| 131 |
|
|
public: |
| 132 |
|
|
/// @param text The numbers. |
| 133 |
|
|
/// @param format The format they belong to, for errors. |
| 134 |
1/2
✓ Branch 2 taken 16 times.
✗ Branch 3 not taken.
|
16 |
NumberReader(std::string_view text, std::string format) : format_(std::move(format)) { |
| 135 |
1/2
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
|
16 |
std::string spaced(text); |
| 136 |
|
16 |
std::replace(spaced.begin(), spaced.end(), ',', ' '); |
| 137 |
1/2
✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
|
16 |
stream_.str(std::move(spaced)); |
| 138 |
|
16 |
} |
| 139 |
|
|
|
| 140 |
|
|
/// @return The next number. |
| 141 |
|
|
/// @throws std::invalid_argument If there are no more. |
| 142 |
|
318 |
double Next() { |
| 143 |
|
318 |
double value = 0.0; |
| 144 |
2/2
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 316 times.
|
318 |
if (!(stream_ >> value)) { |
| 145 |
2/4
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
4 |
throw std::invalid_argument(format_ + " ends early"); |
| 146 |
|
|
} |
| 147 |
|
316 |
return value; |
| 148 |
|
|
} |
| 149 |
|
|
|
| 150 |
|
|
/// @param count How many numbers to pass over. |
| 151 |
|
35 |
void Skip(std::size_t count) { |
| 152 |
|
35 |
Values(count); |
| 153 |
|
35 |
} |
| 154 |
|
|
|
| 155 |
|
|
/// @param count How many numbers to read. |
| 156 |
|
|
/// @return The next `count` numbers. |
| 157 |
|
77 |
std::vector<double> Values(std::size_t count) { |
| 158 |
|
77 |
std::vector<double> values(count); |
| 159 |
2/2
✓ Branch 0 taken 245 times.
✓ Branch 1 taken 76 times.
|
321 |
for (double& value : values) { |
| 160 |
2/2
✓ Branch 1 taken 244 times.
✓ Branch 2 taken 1 time.
|
245 |
value = Next(); |
| 161 |
|
|
} |
| 162 |
|
76 |
return values; |
| 163 |
|
1 |
} |
| 164 |
|
|
|
| 165 |
|
|
/// @return The next number, as a count. |
| 166 |
|
|
/// @throws std::invalid_argument If it is negative or fractional. |
| 167 |
|
31 |
std::size_t Count() { |
| 168 |
|
31 |
const double value = Next(); |
| 169 |
3/4
✓ Branch 0 taken 31 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✓ Branch 3 taken 30 times.
|
31 |
if (!(value >= 0.0) || value != std::floor(value)) { |
| 170 |
2/4
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 time.
✗ Branch 6 not taken.
|
2 |
throw std::invalid_argument(format_ + " has a bad count"); |
| 171 |
|
|
} |
| 172 |
|
30 |
return static_cast<std::size_t>(value); |
| 173 |
|
|
} |
| 174 |
|
|
|
| 175 |
|
|
private: |
| 176 |
|
|
std::string format_; |
| 177 |
|
|
std::istringstream stream_; |
| 178 |
|
|
}; |
| 179 |
|
|
|
| 180 |
|
|
} // namespace ernie |
| 181 |
|
|
|