Skip to content

Commit

Permalink
Ensure SchemaIterator fully records orphan pointer templates (#1539)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Feb 8, 2025
1 parent a33e514 commit 7af0ac4
Show file tree
Hide file tree
Showing 5 changed files with 171 additions and 0 deletions.
33 changes: 33 additions & 0 deletions test/jsonschema/jsonschema_official_walker_2019_09_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1591,3 +1591,36 @@ TEST(JSONSchema_official_walker_2019_09, instance_locations) {
EXPECT_OFFICIAL_WALKER_ENTRY_2019_09_ORPHAN(entries, 27, "/definitions/foo",
"");
}

TEST(JSONSchema_official_walker_2019_09, definitions_subschemas) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$defs": {
"foo": {
"properties": {
"bar": {
"additionalProperties": {
"type": "string"
}
}
}
}
}
})JSON");

std::vector<sourcemeta::core::SchemaIteratorEntry> entries;
for (const auto &entry : sourcemeta::core::SchemaIterator(
document, sourcemeta::core::schema_official_walker,
sourcemeta::core::schema_official_resolver)) {
entries.push_back(entry);
}

EXPECT_EQ(entries.size(), 4);

EXPECT_OFFICIAL_WALKER_ENTRY_2019_09(entries, 0, "", "");
EXPECT_OFFICIAL_WALKER_ENTRY_2019_09_ORPHAN(entries, 1, "/$defs/foo", "");
EXPECT_OFFICIAL_WALKER_ENTRY_2019_09_ORPHAN(
entries, 2, "/$defs/foo/properties/bar", "/bar");
EXPECT_OFFICIAL_WALKER_ENTRY_2019_09_ORPHAN(
entries, 3, "/$defs/foo/properties/bar/additionalProperties", "/bar/~P~");
}
33 changes: 33 additions & 0 deletions test/jsonschema/jsonschema_official_walker_2020_12_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1724,3 +1724,36 @@ TEST(JSONSchema_official_walker_2020_12, instance_locations_defs_with_ref) {
EXPECT_OFFICIAL_WALKER_ENTRY_2020_12(entries, 1, "/allOf/0", "");
EXPECT_OFFICIAL_WALKER_ENTRY_2020_12_ORPHAN(entries, 2, "/$defs/foo", "");
}

TEST(JSONSchema_official_walker_2020_12, definitions_subschemas) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$defs": {
"foo": {
"properties": {
"bar": {
"additionalProperties": {
"type": "string"
}
}
}
}
}
})JSON");

std::vector<sourcemeta::core::SchemaIteratorEntry> entries;
for (const auto &entry : sourcemeta::core::SchemaIterator(
document, sourcemeta::core::schema_official_walker,
sourcemeta::core::schema_official_resolver)) {
entries.push_back(entry);
}

EXPECT_EQ(entries.size(), 4);

EXPECT_OFFICIAL_WALKER_ENTRY_2020_12(entries, 0, "", "");
EXPECT_OFFICIAL_WALKER_ENTRY_2020_12_ORPHAN(entries, 1, "/$defs/foo", "");
EXPECT_OFFICIAL_WALKER_ENTRY_2020_12_ORPHAN(
entries, 2, "/$defs/foo/properties/bar", "/bar");
EXPECT_OFFICIAL_WALKER_ENTRY_2020_12_ORPHAN(
entries, 3, "/$defs/foo/properties/bar/additionalProperties", "/bar/~P~");
}
35 changes: 35 additions & 0 deletions test/jsonschema/jsonschema_official_walker_draft4_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -703,3 +703,38 @@ TEST(JSONSchema_official_walker_draft4, instance_locations) {
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT4_ORPHAN(entries, 16, "/definitions/foo",
"");
}

TEST(JSONSchema_official_walker_draft4, definitions_subschemas) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"foo": {
"properties": {
"bar": {
"additionalProperties": {
"type": "string"
}
}
}
}
}
})JSON");

std::vector<sourcemeta::core::SchemaIteratorEntry> entries;
for (const auto &entry : sourcemeta::core::SchemaIterator(
document, sourcemeta::core::schema_official_walker,
sourcemeta::core::schema_official_resolver)) {
entries.push_back(entry);
}

EXPECT_EQ(entries.size(), 4);

EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT4(entries, 0, "", "");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT4_ORPHAN(entries, 1, "/definitions/foo",
"");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT4_ORPHAN(
entries, 2, "/definitions/foo/properties/bar", "/bar");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT4_ORPHAN(
entries, 3, "/definitions/foo/properties/bar/additionalProperties",
"/bar/~P~");
}
35 changes: 35 additions & 0 deletions test/jsonschema/jsonschema_official_walker_draft6_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -759,3 +759,38 @@ TEST(JSONSchema_official_walker_draft6, instance_locations) {
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT6_ORPHAN(entries, 18, "/definitions/foo",
"");
}

TEST(JSONSchema_official_walker_draft6, definitions_subschemas) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "http://json-schema.org/draft-06/schema#",
"definitions": {
"foo": {
"properties": {
"bar": {
"additionalProperties": {
"type": "string"
}
}
}
}
}
})JSON");

std::vector<sourcemeta::core::SchemaIteratorEntry> entries;
for (const auto &entry : sourcemeta::core::SchemaIterator(
document, sourcemeta::core::schema_official_walker,
sourcemeta::core::schema_official_resolver)) {
entries.push_back(entry);
}

EXPECT_EQ(entries.size(), 4);

EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT6(entries, 0, "", "");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT6_ORPHAN(entries, 1, "/definitions/foo",
"");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT6_ORPHAN(
entries, 2, "/definitions/foo/properties/bar", "/bar");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT6_ORPHAN(
entries, 3, "/definitions/foo/properties/bar/additionalProperties",
"/bar/~P~");
}
35 changes: 35 additions & 0 deletions test/jsonschema/jsonschema_official_walker_draft7_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -947,3 +947,38 @@ TEST(JSONSchema_official_walker_draft7, instance_locations) {
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT7_ORPHAN(entries, 21, "/definitions/foo",
"");
}

TEST(JSONSchema_official_walker_draft7, definitions_subschemas) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"foo": {
"properties": {
"bar": {
"additionalProperties": {
"type": "string"
}
}
}
}
}
})JSON");

std::vector<sourcemeta::core::SchemaIteratorEntry> entries;
for (const auto &entry : sourcemeta::core::SchemaIterator(
document, sourcemeta::core::schema_official_walker,
sourcemeta::core::schema_official_resolver)) {
entries.push_back(entry);
}

EXPECT_EQ(entries.size(), 4);

EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT7(entries, 0, "", "");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT7_ORPHAN(entries, 1, "/definitions/foo",
"");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT7_ORPHAN(
entries, 2, "/definitions/foo/properties/bar", "/bar");
EXPECT_OFFICIAL_WALKER_ENTRY_DRAFT7_ORPHAN(
entries, 3, "/definitions/foo/properties/bar/additionalProperties",
"/bar/~P~");
}

5 comments on commit 7af0ac4

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Benchmark suite Current: 7af0ac4 Previous: a33e514 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.6224819433043385 ns/iter 1.7771014213115193 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.6940436422852294 ns/iter 2.285432056447565 ns/iter 0.74
Regex_Period_Asterisk 1.7148344927801409 ns/iter 2.2083781389827384 ns/iter 0.78
Regex_Group_Period_Asterisk_Group 1.688890574292906 ns/iter 2.2271864465206663 ns/iter 0.76
Regex_Period_Plus 2.3704901996831973 ns/iter 2.7484525180364905 ns/iter 0.86
Regex_Period 1.994078644788617 ns/iter 2.6006081443616953 ns/iter 0.77
Regex_Caret_Period_Plus_Dollar 1.9619568309995605 ns/iter 2.344614732554976 ns/iter 0.84
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0198317190614588 ns/iter 2.3592183150381016 ns/iter 0.86
Regex_Caret_Period_Asterisk_Dollar 1.6476067783304817 ns/iter 1.8072134947493812 ns/iter 0.91
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.6427012066892748 ns/iter 1.7514786431241807 ns/iter 0.94
Regex_Caret_X_Hyphen 7.064018820546775 ns/iter 8.427351528155123 ns/iter 0.84
Regex_Period_Md_Dollar 69.88152046029181 ns/iter 79.19829582089561 ns/iter 0.88
Regex_Caret_Slash_Period_Asterisk 5.384410355460009 ns/iter 5.634147644437735 ns/iter 0.96
Regex_Caret_Period_Range_Dollar 2.3056280567043084 ns/iter 2.6527386617465156 ns/iter 0.87
Regex_Nested_Backtrack 768.3572230944129 ns/iter 851.1676129952813 ns/iter 0.90
JSON_Array_Of_Objects_Unique 345.6524230917707 ns/iter 356.5978218515214 ns/iter 0.97
JSON_Parse_1 22424.520311295004 ns/iter 26328.926044267253 ns/iter 0.85
JSON_Fast_Hash_Helm_Chart_Lock 52.03812499999003 ns/iter 57.28246376940729 ns/iter 0.91
JSON_Equality_Helm_Chart_Lock 126.65356694862402 ns/iter 125.82693511145122 ns/iter 1.01
JSON_String_Equal/10 8.008604472036202 ns/iter 8.794689430787257 ns/iter 0.91
JSON_String_Equal/100 6.303887360926132 ns/iter 6.482213409949045 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 0.33831854798275685 ns/iter 0.3633727151937147 ns/iter 0.93
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.371496207591341 ns/iter 4.195336563901842 ns/iter 0.80
JSON_String_Fast_Hash/10 2.163812277757084 ns/iter 1.8958521541728328 ns/iter 1.14
JSON_String_Fast_Hash/100 2.028562790605224 ns/iter 2.3119832050976004 ns/iter 0.88
JSON_String_Key_Hash/10 1.3942661796187665 ns/iter 1.4349934488048597 ns/iter 0.97
JSON_String_Key_Hash/100 1.46730211479012 ns/iter 1.4492705723771309 ns/iter 1.01
JSON_Object_Defines_Miss_Same_Length 2.44998613152187 ns/iter 2.385452643472702 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Small 2.373510032779047 ns/iter 2.712397937542276 ns/iter 0.88
JSON_Object_Defines_Miss_Too_Large 2.3908946623470655 ns/iter 2.423431595407739 ns/iter 0.99
Pointer_Object_Traverse 16.035594725431686 ns/iter 18.611608460219006 ns/iter 0.86
Pointer_Object_Try_Traverse 22.984588806489022 ns/iter 26.09043065125342 ns/iter 0.88
Pointer_Push_Back_Pointer_To_Weak_Pointer 178.5323789847378 ns/iter 198.50049811813076 ns/iter 0.90
Schema_Frame_OMC_Full 175609916.75000536 ns/iter 193039874.99998242 ns/iter 0.91
Schema_Bundle_Meta_2020_12 7883040.741936012 ns/iter 8581606.09302532 ns/iter 0.92

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Benchmark suite Current: 7af0ac4 Previous: a33e514 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2016848605821324 ns/iter 2.199477447110509 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2122037550403286 ns/iter 2.193409980520937 ns/iter 1.01
Regex_Period_Asterisk 2.197024436925915 ns/iter 2.2118093846717533 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 2.204678250981296 ns/iter 2.202666264922767 ns/iter 1.00
Regex_Period_Plus 2.4459145036112138 ns/iter 2.488546403220857 ns/iter 0.98
Regex_Period 2.3135348159790605 ns/iter 2.368688763778354 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 2.225338321546048 ns/iter 2.2568673555444843 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 2.3179633966928828 ns/iter 2.2502290939277354 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 2.4872689103963928 ns/iter 2.4870523053589313 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.491186810649949 ns/iter 2.486463131466549 ns/iter 1.00
Regex_Caret_X_Hyphen 13.053492739771393 ns/iter 13.054122826716226 ns/iter 1.00
Regex_Period_Md_Dollar 73.54778183649483 ns/iter 73.19295466819632 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 5.9078561306911475 ns/iter 6.218909714744673 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 2.531660594469445 ns/iter 3.729052271561638 ns/iter 0.68
Regex_Nested_Backtrack 496.26279826212215 ns/iter 496.0048145117899 ns/iter 1.00
JSON_Array_Of_Objects_Unique 403.20638983298534 ns/iter 403.414118845858 ns/iter 1.00
JSON_Parse_1 30202.940147370315 ns/iter 30350.94983133155 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 60.04241273006841 ns/iter 61.79176499057533 ns/iter 0.97
JSON_Equality_Helm_Chart_Lock 156.8029166343058 ns/iter 150.3266049148963 ns/iter 1.04
JSON_String_Equal/10 7.158470155746318 ns/iter 7.053403775058149 ns/iter 1.01
JSON_String_Equal/100 7.792502310950593 ns/iter 6.84958918973883 ns/iter 1.14
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9384644965335903 ns/iter 0.9404173824875727 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.341300695704716 ns/iter 14.706862561365595 ns/iter 0.70
JSON_String_Fast_Hash/10 2.179825718686123 ns/iter 2.193838899320927 ns/iter 0.99
JSON_String_Fast_Hash/100 2.1779019265145196 ns/iter 2.1753933770975586 ns/iter 1.00
JSON_String_Key_Hash/10 2.489610605396717 ns/iter 2.704383781492049 ns/iter 0.92
JSON_String_Key_Hash/100 2.178593246629164 ns/iter 2.1793860403954057 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.734350799226504 ns/iter 3.7339395187332705 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7349963743660233 ns/iter 3.7346075244758286 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.738593499592735 ns/iter 3.7379832380111813 ns/iter 1.00
Pointer_Object_Traverse 44.395053382997475 ns/iter 44.42958104805373 ns/iter 1.00
Pointer_Object_Try_Traverse 52.36138153142883 ns/iter 52.322245052963375 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 304.13267144565225 ns/iter 303.02891613645744 ns/iter 1.00
Schema_Frame_OMC_Full 231886117.6666663 ns/iter 228703040.9999981 ns/iter 1.01
Schema_Bundle_Meta_2020_12 10320976.088215329 ns/iter 10326601.283576287 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Benchmark suite Current: 7af0ac4 Previous: a33e514 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.737515625001578 ns/iter 6.677368303569559 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.522985491072473 ns/iter 6.776823660713051 ns/iter 0.96
Regex_Period_Asterisk 6.727327008927578 ns/iter 6.525842857143971 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 6.624167410715285 ns/iter 6.962426339285343 ns/iter 0.95
Regex_Period_Plus 6.892159598214574 ns/iter 6.961770089287508 ns/iter 0.99
Regex_Period 6.9398482142852504 ns/iter 7.046362499999808 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 7.459502645270188 ns/iter 6.961337499999688 ns/iter 1.07
Regex_Caret_Group_Period_Plus_Group_Dollar 7.118878348213136 ns/iter 7.239315848214086 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 6.5875178571417345 ns/iter 6.644004464284591 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.723348214285758 ns/iter 6.541016964285566 ns/iter 1.03
Regex_Caret_X_Hyphen 14.402432748204149 ns/iter 11.848114285714116 ns/iter 1.22
Regex_Period_Md_Dollar 141.9136208967464 ns/iter 142.56019452855065 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 9.967823437499133 ns/iter 9.979335937501332 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 7.427206473212981 ns/iter 7.420222098214627 ns/iter 1.00
Regex_Nested_Backtrack 602.7096000000256 ns/iter 588.101160714213 ns/iter 1.02
JSON_Array_Of_Objects_Unique 411.9514682165134 ns/iter 413.8001360847846 ns/iter 1.00
JSON_Parse_1 79098.12500001477 ns/iter 80580.31249998773 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 57.02489285714104 ns/iter 57.53515178570622 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 188.4037936074258 ns/iter 189.30398118780775 ns/iter 1.00
JSON_String_Equal/10 9.356232547514413 ns/iter 9.364003083194794 ns/iter 1.00
JSON_String_Equal/100 9.930699999998183 ns/iter 9.928311116391775 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 2.169586249999611 ns/iter 2.1740881249996846 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.603738839283103 ns/iter 14.614537946425596 ns/iter 1.00
JSON_String_Fast_Hash/10 3.1469615674177773 ns/iter 3.098911160713718 ns/iter 1.02
JSON_String_Fast_Hash/100 3.154263392857055 ns/iter 3.0980446428573924 ns/iter 1.02
JSON_String_Key_Hash/10 7.738637276786571 ns/iter 7.9724296875000835 ns/iter 0.97
JSON_String_Key_Hash/100 3.719268743358629 ns/iter 3.7151582076516467 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 4.027115051834203 ns/iter 4.02909000719523 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.40896088676986 ns/iter 3.413533130333902 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7172158862195044 ns/iter 3.716965820084807 ns/iter 1.00
Pointer_Object_Traverse 52.17920000000049 ns/iter 52.77635714285063 ns/iter 0.99
Pointer_Object_Try_Traverse 65.36511607143731 ns/iter 64.52571428569951 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 159.15837053570263 ns/iter 184.37926646242053 ns/iter 0.86
Schema_Frame_OMC_Full 464199199.9999391 ns/iter 473985650.0000315 ns/iter 0.98
Schema_Bundle_Meta_2020_12 23322826.66663256 ns/iter 23522313.33331929 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Benchmark suite Current: 7af0ac4 Previous: a33e514 Ratio
Schema_Frame_OMC_Full 240679684.33333436 ns/iter 229638939.6666806 ns/iter 1.05
Schema_Bundle_Meta_2020_12 10623122.92424739 ns/iter 10553003.621224076 ns/iter 1.01
Pointer_Object_Traverse 45.28645619507305 ns/iter 46.98024021964946 ns/iter 0.96
Pointer_Object_Try_Traverse 22.986548137520522 ns/iter 22.983863531629883 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 173.32253963464115 ns/iter 174.07297113478097 ns/iter 1.00
JSON_Array_Of_Objects_Unique 410.54436105942295 ns/iter 403.8238098174628 ns/iter 1.02
JSON_Parse_1 33176.24441922031 ns/iter 33264.51917152465 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 69.04826893050117 ns/iter 68.98810395470427 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 143.59601473579576 ns/iter 142.8634296835539 ns/iter 1.01
JSON_String_Equal/10 5.989953285405959 ns/iter 5.991362253503112 ns/iter 1.00
JSON_String_Equal/100 6.614038414932901 ns/iter 6.612846474554077 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9340950544691484 ns/iter 0.973588410217398 ns/iter 0.96
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.806974933674395 ns/iter 11.772402822512122 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9345730942151321 ns/iter 0.9329932441075371 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9328922194437421 ns/iter 0.9344089652390237 ns/iter 1.00
JSON_String_Key_Hash/10 1.2479190046031632 ns/iter 1.244825350917254 ns/iter 1.00
JSON_String_Key_Hash/100 0.93372016666441 ns/iter 0.9367759545836406 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4920212174593805 ns/iter 2.503534156667099 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4866729258161806 ns/iter 2.4867709763852375 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 2.4899397493590345 ns/iter 2.508729630355586 ns/iter 0.99
Regex_Lower_S_Or_Upper_S_Asterisk 3.4210260650570987 ns/iter 3.425454392350101 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.4224455440626986 ns/iter 3.4261502691248285 ns/iter 1.00
Regex_Period_Asterisk 3.4248303265720117 ns/iter 3.4239162200882887 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.4213873386906295 ns/iter 3.4244132712925097 ns/iter 1.00
Regex_Period_Plus 3.7329149573784446 ns/iter 3.7380862945280824 ns/iter 1.00
Regex_Period 3.7299718741075245 ns/iter 3.7355903461167554 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.7312243684838573 ns/iter 3.731154045133004 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.7398985575376416 ns/iter 3.72977400436281 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.4233984489891376 ns/iter 4.697403204975513 ns/iter 0.73
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.4198937717834657 ns/iter 4.281328386369071 ns/iter 0.80
Regex_Caret_X_Hyphen 9.014959795690537 ns/iter 13.683040437588355 ns/iter 0.66
Regex_Period_Md_Dollar 88.17915928946589 ns/iter 89.623667873938 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 8.708182208058794 ns/iter 8.403672761121067 ns/iter 1.04
Regex_Caret_Period_Range_Dollar 3.7418588819287253 ns/iter 3.7307341160997143 ns/iter 1.00
Regex_Nested_Backtrack 819.4519537644977 ns/iter 819.093706440628 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/gcc)

Benchmark suite Current: 7af0ac4 Previous: a33e514 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9346772690899123 ns/iter 1.8982915359433419 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.9046923476322144 ns/iter 1.934593624582003 ns/iter 0.98
Regex_Period_Asterisk 2.0016629037791143 ns/iter 2.008895790042319 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 1.9209064056532066 ns/iter 2.024797097800918 ns/iter 0.95
Regex_Period_Plus 1.6583020051481 ns/iter 1.692533908222527 ns/iter 0.98
Regex_Period 1.6565295018078283 ns/iter 1.6851444467469088 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 1.676058008504846 ns/iter 1.6865511066851457 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 1.5866082202121052 ns/iter 1.5777480559822712 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 1.9009305920252084 ns/iter 1.8860097239774885 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.9192111570828996 ns/iter 1.8891087124710917 ns/iter 1.02
Regex_Caret_X_Hyphen 6.022312069412027 ns/iter 5.973620713159586 ns/iter 1.01
Regex_Period_Md_Dollar 70.08754707069852 ns/iter 69.50343687672377 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 4.424094512384408 ns/iter 4.392749707466728 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 1.9027646810649306 ns/iter 1.8949233242314547 ns/iter 1.00
Regex_Nested_Backtrack 850.791039599947 ns/iter 849.7375339839182 ns/iter 1.00
JSON_Array_Of_Objects_Unique 207.03543391655938 ns/iter 214.33681587908143 ns/iter 0.97
JSON_Parse_1 23332.054707457155 ns/iter 23345.33199187248 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 23.597014795180606 ns/iter 23.455478822940048 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 118.37983650669568 ns/iter 113.80121947664394 ns/iter 1.04
JSON_String_Equal/10 5.442661587223855 ns/iter 5.58180361028161 ns/iter 0.98
JSON_String_Equal/100 5.139269324228634 ns/iter 5.103697066392692 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7615608611183629 ns/iter 0.7491807030197054 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.5640654461269965 ns/iter 3.4545674161955597 ns/iter 1.03
JSON_String_Fast_Hash/10 1.9379888918472217 ns/iter 1.8919453090360518 ns/iter 1.02
JSON_String_Fast_Hash/100 1.922055428009397 ns/iter 1.8916381099130353 ns/iter 1.02
JSON_String_Key_Hash/10 1.4708244812427262 ns/iter 1.43201025390625 ns/iter 1.03
JSON_String_Key_Hash/100 1.9687185459435372 ns/iter 1.9181218425543323 ns/iter 1.03
JSON_Object_Defines_Miss_Same_Length 1.769147541907026 ns/iter 1.7331064182754707 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Small 1.9269776980531503 ns/iter 1.8905975204249226 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 1.752267024411095 ns/iter 1.7244660381686439 ns/iter 1.02
Pointer_Object_Traverse 53.31035837995276 ns/iter 51.99264167081417 ns/iter 1.03
Pointer_Object_Try_Traverse 37.56519888455552 ns/iter 36.27883191611546 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 158.01008409384514 ns/iter 155.82141704603052 ns/iter 1.01
Schema_Frame_OMC_Full 191110491.7526245 ns/iter 181380331.51626587 ns/iter 1.05
Schema_Bundle_Meta_2020_12 8689287.232189644 ns/iter 8445647.825677712 ns/iter 1.03

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.