Skip to content

Eliminate unevaluatedProperties behind a single \ branch - #1028

Open
Vansh-kap-98 wants to merge 2 commits into
mainfrom
uneval-elim-research
Open

Eliminate unevaluatedProperties behind a single \ branch#1028
Vansh-kap-98 wants to merge 2 commits into
mainfrom
uneval-elim-research

Conversation

@Vansh-kap-98

@Vansh-kap-98 Vansh-kap-98 commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

unevaluated_properties_to_additional_properties only fires when
unevaluatedProperties has no applicator sibling at all, which does not happen
on real schemas. All 33 unevaluatedProperties occurrences in the OMC benchmark
sit next to allOf: [ { $ref } ], so the keyword survives canonicalisation.

This handles that shape. Based on arXiv:2503.11288v1 ("Elimination of annotation
dependencies in validation for Modern JSON Schema"), which I read for this: it is
the paper's cheapest non-trivial case, where a single branch means there is
nothing to intersect and the referenced schema's evaluated property set is
exactly the names its properties spells out.

Renaming alone would be wrong, since additionalProperties only consults
syntactically adjacent properties/patternProperties and the $ref's
properties are not adjacent. The referenced names are merged into the local
properties as true schemas first; validation still comes from the untouched
$ref.

The rewrite applies only when the target is statically characterisable: no
in-place applicator or reference of its own, no unevaluated*, no
additionalProperties, no non-empty patternProperties. Targets whose
required is not already covered by properties are skipped, since
required_properties_in_properties would widen them later, as are legacy
dialects, which grow an implicit additionalProperties.

Limits: converts only the terminal hop of a $ref chain (in a -> b -> c only
b -> c), does not touch unevaluatedItems, and does not affect
E2E_Evaluator_*, which compiles the raw schema without canonicalising.

Effect: benchmark/e2e/omc/schema.json goes from 33 unevaluatedProperties to
0 after canonicalisation. No site in benchmark/e2e/openapi/schema.json
converts.

Review in cubic

Signed-off-by: Vansh <officialbusiness9818@gmail.com>
@Vansh-kap-98
Vansh-kap-98 marked this pull request as draft September 2, 2026 14:24

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

1 issue found across 4 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="test/canonicalizer/canonicalizer_2019_09_test.cc">

<violation number="1" location="test/canonicalizer/canonicalizer_2019_09_test.cc:749">
P3: Only the happy path and two negative cases (anyOf target, additionalProperties target) are tested, but the rewrite stays sound only because of several other guard conditions that the PR description explicitly calls out. Add "stays" tests for a target with `required` not fully covered by `properties`, a non-empty `patternProperties`, an in-place applicator such as `items`/`contains`, and a legacy dialect (e.g. draft-04), plus a top-level sibling `unevaluatedItems`. These guard conditions are what prevent the rewrite from corrupting semantics, so leaving them untested hides regressions in exactly the logic this PR exists to add. The rule also applies to 2020-12, so the same cases belong in canonicalizer_2020_12_test.cc.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema());
}

TEST(unevaluated_properties_single_ref_to_additional_properties) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: Only the happy path and two negative cases (anyOf target, additionalProperties target) are tested, but the rewrite stays sound only because of several other guard conditions that the PR description explicitly calls out. Add "stays" tests for a target with required not fully covered by properties, a non-empty patternProperties, an in-place applicator such as items/contains, and a legacy dialect (e.g. draft-04), plus a top-level sibling unevaluatedItems. These guard conditions are what prevent the rewrite from corrupting semantics, so leaving them untested hides regressions in exactly the logic this PR exists to add. The rule also applies to 2020-12, so the same cases belong in canonicalizer_2020_12_test.cc.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At test/canonicalizer/canonicalizer_2019_09_test.cc, line 749:

<comment>Only the happy path and two negative cases (anyOf target, additionalProperties target) are tested, but the rewrite stays sound only because of several other guard conditions that the PR description explicitly calls out. Add "stays" tests for a target with `required` not fully covered by `properties`, a non-empty `patternProperties`, an in-place applicator such as `items`/`contains`, and a legacy dialect (e.g. draft-04), plus a top-level sibling `unevaluatedItems`. These guard conditions are what prevent the rewrite from corrupting semantics, so leaving them untested hides regressions in exactly the logic this PR exists to add. The rule also applies to 2020-12, so the same cases belong in canonicalizer_2020_12_test.cc.</comment>

<file context>
@@ -746,6 +746,187 @@ TEST(items_implicit_1) {
   CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema());
 }
 
+TEST(unevaluated_properties_single_ref_to_additional_properties) {
+  auto document = sourcemeta::core::parse_json(R"JSON({
+    "$schema": "https://json-schema.org/draft/2019-09/schema",
</file context>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Details
Benchmark suite Current: d6f2e44 Previous: e8b95e6 Ratio
Schema_Tracker_ISO_Language 4895158.171052571 ns/iter 5821227.745341783 ns/iter 0.84
Schema_Tracker_ISO_Language_To_JSON 16562066.108695429 ns/iter 14943911.239131663 ns/iter 1.11
Schema_Frame_WoT_References 6134831.868420957 ns/iter 5574424.169999475 ns/iter 1.10
Schema_Frame_OMC_References 29462961.538460884 ns/iter 27135993.851852957 ns/iter 1.09
Schema_Frame_OMC_Locations 27659177.884616453 ns/iter 22490370.117646523 ns/iter 1.23
Schema_Frame_ISO_Language_Locations 78027703.12498808 ns/iter 78002490.77777405 ns/iter 1.00
Schema_Frame_ISO_Language_Root 221.70657687330763 ns/iter 230.67340799397593 ns/iter 0.96
Schema_Frame_KrakenD_References 51957473.45454617 ns/iter 46250098.21428908 ns/iter 1.12
Schema_Frame_KrakenD_Reachable 603480332.9999932 ns/iter 568496416.0000163 ns/iter 1.06
Schema_Frame_ISO_Language_Locations_To_JSON 145094583.24999967 ns/iter 177218541.59999567 ns/iter 0.82
Schema_Frame_Many_Resources_References 800746708.5000144 ns/iter 744475499.9999646 ns/iter 1.08
Schema_Frame_Deeply_Nested_References 18642883.999998074 ns/iter 19731800.675673626 ns/iter 0.94
Schema_Bundle_Meta_2020_12 1676788.5437507364 ns/iter 1639063.1333360753 ns/iter 1.02
Schema_Format_ISO_Language_To_JSON 98611923.49994023 ns/iter 115518187.66666126 ns/iter 0.85
E2E_Compiler_adaptivecard 69621412.9091004 ns/iter 69120854.25000215 ns/iter 1.01
E2E_Compiler_ansible_meta 33303041.65217018 ns/iter 31786611.842101976 ns/iter 1.05
E2E_Compiler_aws_cdk 315805.6727272777 ns/iter 298330.95828169317 ns/iter 1.06
E2E_Compiler_babelrc 2735433.155477416 ns/iter 2107341.923076722 ns/iter 1.30
E2E_Compiler_clang_format 17461507.590910103 ns/iter 19281456.521740813 ns/iter 0.91
E2E_Compiler_cmake_presets 26922185.88461296 ns/iter 29815754.999999627 ns/iter 0.90
E2E_Compiler_code_climate 2156012.3247590717 ns/iter 2219963.5193134896 ns/iter 0.97
E2E_Compiler_cql2 12002619.629033836 ns/iter 13881698.52941255 ns/iter 0.86
E2E_Compiler_cspell 23989915.26666426 ns/iter 26727985.10714155 ns/iter 0.90
E2E_Compiler_cypress 4120089.651686091 ns/iter 5346847.487179328 ns/iter 0.77
E2E_Compiler_deno 7689684.148146378 ns/iter 7991958.860759351 ns/iter 0.96
E2E_Compiler_dependabot 3918667.630057174 ns/iter 4984495.000000304 ns/iter 0.79
E2E_Compiler_draft_04 2192279.6373244855 ns/iter 2682729.8447654843 ns/iter 0.82
E2E_Compiler_fabric_mod 4136243.497109165 ns/iter 3939440.207791715 ns/iter 1.05
E2E_Compiler_geojson 25702084.677416883 ns/iter 20880613.281249795 ns/iter 1.23
E2E_Compiler_gitpod_configuration 4962830.962025277 ns/iter 5284821.061349683 ns/iter 0.94
E2E_Compiler_helm_chart_lock 588813.3077544504 ns/iter 654901.5556734343 ns/iter 0.90
E2E_Compiler_importmap 222207.00034399197 ns/iter 335302.6872428004 ns/iter 0.66
E2E_Compiler_jasmine 1191207.1954020446 ns/iter 1532345.724220847 ns/iter 0.78
E2E_Compiler_jshintrc 3953333.0838323394 ns/iter 5011670.089552455 ns/iter 0.79
E2E_Compiler_jsconfig 24503054.46153869 ns/iter 26421833.310345046 ns/iter 0.93
E2E_Compiler_krakend 150830341.60002172 ns/iter 172995166.66666174 ns/iter 0.87
E2E_Compiler_lazygit 36194713.23529123 ns/iter 37075114.54999803 ns/iter 0.98
E2E_Compiler_lerna 1257320.8648650316 ns/iter 1575986.1623615755 ns/iter 0.80
E2E_Compiler_nest_cli 6221487.85416717 ns/iter 7030606.481482019 ns/iter 0.88
E2E_Compiler_omc 174054500.00001112 ns/iter 209036177.2499989 ns/iter 0.83
E2E_Compiler_omnisharp 6371717.631067953 ns/iter 7462889.231707843 ns/iter 0.85
E2E_Compiler_openapi 29312413.67856988 ns/iter 32144242.29629795 ns/iter 0.91
E2E_Compiler_pre_commit_hooks 5265043.750000587 ns/iter 6103324.519230569 ns/iter 0.86
E2E_Compiler_pulumi 3874097.8023959077 ns/iter 4608453.61635191 ns/iter 0.84
E2E_Compiler_semantic_release 1417168.604040504 ns/iter 1584434.0958605332 ns/iter 0.89
E2E_Compiler_stale 1560174.1071428598 ns/iter 1299528.914046039 ns/iter 1.20
E2E_Compiler_stylecop 6509162.752137823 ns/iter 6509328.457445676 ns/iter 1.00
E2E_Compiler_tmuxinator 1706790.1678658074 ns/iter 1716507.7922075621 ns/iter 0.99
E2E_Compiler_ui5 53695749.999990635 ns/iter 63223838.49999369 ns/iter 0.85
E2E_Compiler_ui5_manifest 337029916.9999953 ns/iter 337363270.99995834 ns/iter 1.00
E2E_Compiler_unreal_engine_uproject 4395968.809815831 ns/iter 5451757.911392242 ns/iter 0.81
E2E_Compiler_users_array 737525.3305525308 ns/iter 810490.7173699506 ns/iter 0.91
E2E_Compiler_vercel 13786400.943397997 ns/iter 13898252.1186424 ns/iter 0.99
E2E_Compiler_yamllint 287571.37334405916 ns/iter 292615.6765345964 ns/iter 0.98
E2E_Evaluator_adaptivecard 27719.39881933084 ns/iter 27224.877621553045 ns/iter 1.02
E2E_Evaluator_ansible_meta 241828.31319757953 ns/iter 252493.65805784936 ns/iter 0.96
E2E_Evaluator_aws_cdk 53194.665132506954 ns/iter 54531.19172364653 ns/iter 0.98
E2E_Evaluator_babelrc 116054.46828565343 ns/iter 122172.05798721442 ns/iter 0.95
E2E_Evaluator_cerebrum_criminal_case 1230786.4744406005 ns/iter 1226278.6651482102 ns/iter 1.00
E2E_Evaluator_clang_format 116957.51538236487 ns/iter 117410.14011148027 ns/iter 1.00
E2E_Evaluator_cmake_presets 5198224.942029046 ns/iter 4367700.241176836 ns/iter 1.19
E2E_Evaluator_code_climate 214648.0922714793 ns/iter 187398.87456631023 ns/iter 1.15
E2E_Evaluator_cql2 239103.31905146202 ns/iter 199065.28662418775 ns/iter 1.20
E2E_Evaluator_cspell 636591.9549783963 ns/iter 586671.0830000556 ns/iter 1.09
E2E_Evaluator_cypress 181747.01115830752 ns/iter 171986.55792018466 ns/iter 1.06
E2E_Evaluator_deno 355886.9073148361 ns/iter 416092.1719890431 ns/iter 0.86
E2E_Evaluator_dependabot 368611.1523021467 ns/iter 512632.04225353297 ns/iter 0.72
E2E_Evaluator_draft_04 6182889.547169838 ns/iter 8721341.549296124 ns/iter 0.71
E2E_Evaluator_fabric_mod 530904.0608107989 ns/iter 834655.832760548 ns/iter 0.64
E2E_Evaluator_geojson 9964514.96153802 ns/iter 12981102.678570064 ns/iter 0.77
E2E_Evaluator_gitpod_configuration 210053.46596204542 ns/iter 300266.7756553673 ns/iter 0.70
E2E_Evaluator_helm_chart_lock 293012.84954702185 ns/iter 444961.6837232444 ns/iter 0.66
E2E_Evaluator_importmap 43861.864717871074 ns/iter 66886.44935345773 ns/iter 0.66
E2E_Evaluator_jasmine 100936.00778210993 ns/iter 169089.33491542537 ns/iter 0.60
E2E_Evaluator_jshintrc 955154.6489797612 ns/iter 1410532.1936839526 ns/iter 0.68
E2E_Evaluator_jsconfig 329839.37213655957 ns/iter 548706.7909998586 ns/iter 0.60
E2E_Evaluator_krakend 151655.30218772852 ns/iter 253511.96369641589 ns/iter 0.60
E2E_Evaluator_lazygit 137520.69581629403 ns/iter 186014.33154950553 ns/iter 0.74
E2E_Evaluator_lerna 158682.94604043657 ns/iter 234139.54904589642 ns/iter 0.68
E2E_Evaluator_nest_cli 162276.97265712838 ns/iter 238445.9470845934 ns/iter 0.68
E2E_Evaluator_omc 16789.564300927046 ns/iter 24782.455290383143 ns/iter 0.68
E2E_Evaluator_omnisharp 518555.0000001058 ns/iter 731738.4217626797 ns/iter 0.71
E2E_Evaluator_openapi 8032790.6626510415 ns/iter 12571743.644068222 ns/iter 0.64
E2E_Evaluator_pre_commit_hooks 401228.66705671325 ns/iter 627913.2145816545 ns/iter 0.64
E2E_Evaluator_pulumi 598957.9497906779 ns/iter 775888.1528471564 ns/iter 0.77
E2E_Evaluator_semantic_release 86090.66425064548 ns/iter 109901.18103047911 ns/iter 0.78
E2E_Evaluator_stale 155572.18099442055 ns/iter 175199.14353584775 ns/iter 0.89
E2E_Evaluator_stylecop 222282.12414030446 ns/iter 284844.2081384533 ns/iter 0.78
E2E_Evaluator_tmuxinator 79016.66663043294 ns/iter 117011.30783133506 ns/iter 0.68
E2E_Evaluator_ui5 404777.87214332906 ns/iter 608070.9964538635 ns/iter 0.67
E2E_Evaluator_ui5_manifest 3133330.2631577556 ns/iter 3218597.2248065136 ns/iter 0.97
E2E_Evaluator_unreal_engine_uproject 599265.276893671 ns/iter 561585.0839999438 ns/iter 1.07
E2E_Evaluator_users_array 595727.3750000241 ns/iter 891776.4539614788 ns/iter 0.67
E2E_Evaluator_vercel 299207.0089147606 ns/iter 296874.55043585756 ns/iter 1.01
E2E_Evaluator_yamllint 11735.279306442359 ns/iter 10844.509700992523 ns/iter 1.08
JSONLD_Catalog_Simple 22077236.1249999 ns/iter 19970442.225800775 ns/iter 1.11
JSONLD_Catalog_Override_Agreeing 22875347.23332859 ns/iter 22702118.033331923 ns/iter 1.01
JSONLD_Catalog_Override_Shadowing 32221041.666667182 ns/iter 29931651.63999947 ns/iter 1.08
Micro_Draft4_Meta_1_No_Callback 173.12805007389403 ns/iter 181.10936780107627 ns/iter 0.96
Micro_Draft4_Required_Properties 820.6377379612585 ns/iter 782.8344604277877 ns/iter 1.05
Micro_Draft4_Many_Optional_Properties_Minimal_Match 30.889008744437632 ns/iter 20.2992864789032 ns/iter 1.52
Micro_Draft4_Few_Optional_Properties_Minimal_Match 12.410972515230043 ns/iter 10.659154590212372 ns/iter 1.16
Micro_Draft4_Items_Schema 346.575735704572 ns/iter 290.99085629636903 ns/iter 1.19
Micro_Draft4_Nested_Object 1.1737155982775869 ns/iter 1.0836414115272865 ns/iter 1.08
Micro_Draft4_Properties_Triad_Optional 325.0900488343117 ns/iter 267.8929671902664 ns/iter 1.21
Micro_Draft4_Properties_Triad_Closed 358.17680068805424 ns/iter 205.29990009437947 ns/iter 1.74
Micro_Draft4_Properties_Triad_Required 369.2803175487412 ns/iter 278.51795343876535 ns/iter 1.33
Micro_Draft4_Properties_Closed 59.22255219859594 ns/iter 53.52634701525987 ns/iter 1.11
Micro_Draft4_Non_Recursive_Ref 16.05357572066963 ns/iter 12.935106968780689 ns/iter 1.24
Micro_Draft4_Pattern_Properties_Empty 174.59847982495995 ns/iter 154.64443317903746 ns/iter 1.13
Micro_Draft4_Ref_To_Single_Property 11.039394044222314 ns/iter 14.738587990618916 ns/iter 0.75
Micro_Draft4_Additional_Properties_Type 40.38540235894617 ns/iter 34.465894131796524 ns/iter 1.17
Micro_Draft4_Nested_Oneof 45.71364636738957 ns/iter 40.56755188702003 ns/iter 1.13
Micro_Draft4_Short_Enum 5.3661945067771715 ns/iter 5.182536553304349 ns/iter 1.04
Micro_Draft4_Long_Enum 11.426617624265724 ns/iter 11.641941423885982 ns/iter 0.98
Micro_Draft4_Long_Enum_Short_Strings 6.686480829804248 ns/iter 7.296306517556745 ns/iter 0.92
Micro_Draft4_Type_Object 2.440177058334498 ns/iter 2.9563402069545193 ns/iter 0.83
Micro_Draft4_Ref_Single_100 1446620.4081632637 ns/iter 1821288.5542170515 ns/iter 0.79
Micro_Draft4_Compile_Ref_Many_Nested 982645.7975566685 ns/iter 1124458.3984375112 ns/iter 0.87
Micro_Draft4_Compile_Wrap 1559938.8322294808 ns/iter 1658846.8486490357 ns/iter 0.94
Micro_Draft6_Property_Names 96.27965608013108 ns/iter 107.98339780190433 ns/iter 0.89
Micro_Draft6_Compile_FHIR 13267263916.99981 ns/iter 18453039875.000057 ns/iter 0.72
Micro_Draft7_If_Then_Else 18.316913918020266 ns/iter 29.35083336734612 ns/iter 0.62
Micro_2019_09_Unevaluated_Properties 28.776947521891618 ns/iter 58.06875320755548 ns/iter 0.50
Micro_2019_09_Compile_Wrap 271073194.6666935 ns/iter 1105265833.0002031 ns/iter 0.25
Micro_2020_12_Dynamic_Ref 601.6635507134582 ns/iter 972.2875926101296 ns/iter 0.62
Micro_2020_12_Dynamic_Ref_Single 2.444262031177673 ns/iter 5.406523886618544 ns/iter 0.45
Micro_2020_12_Simple_Output_Mask 802.9149748011989 ns/iter 1391.4749131117953 ns/iter 0.58
Micro_2020_12_Simple_Output_Annotations 56642.37663372006 ns/iter 99398.32810487553 ns/iter 0.57
Micro_2020_12_Simple_Output_Annotation_Dropping 1179251.4534884584 ns/iter 1980558.1306991095 ns/iter 0.60
Micro_2020_12_Compile_NonCircular_Shared_Refs 669796.8559480485 ns/iter 1150348.6545454434 ns/iter 0.58
Micro_2020_12_Exhaustive_Deep_Numeric 5195.55167000135 ns/iter 8139.149141502669 ns/iter 0.64
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput 30605.3631664194 ns/iter 51304.46018376282 ns/iter 0.60
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput 13209.22045215312 ns/iter 19518.310142967388 ns/iter 0.68
Micro_2020_12_Exhaustive_Deep_Numeric_Fail 92.65956651835653 ns/iter 123.89777588892608 ns/iter 0.75
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput 2479.122797846483 ns/iter 3440.297643789726 ns/iter 0.72
TestSuite_Parse_WoT 19432975.69444111 ns/iter 32771009.04348196 ns/iter 0.59
Alterschema_Check_Readibility_ISO_Language_Set_3 205834152.66666332 ns/iter 329346167.0000397 ns/iter 0.62
Alterschema_Check_Readibility_OMC 65897734.81819479 ns/iter 115677077.42856978 ns/iter 0.57
Alterschema_Check_Readibility_KrakenD 786264834.0001215 ns/iter 1482372333.0000575 ns/iter 0.53
Alterschema_Apply_Readibility_KrakenD 95035252416.00005 ns/iter 137948064541.00012 ns/iter 0.69
Alterschema_Check_Invalid_External_Refs 197338395.99996373 ns/iter 218196139.00000453 ns/iter 0.90

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

JavaScript (macos/llvm)

Details
Benchmark suite Current: d6f2e44 Previous: e8b95e6 Ratio
E2E_Evaluator_adaptivecard 191893 ns 149154 ns 1.29
E2E_Evaluator_ansible-meta 653335 ns 502872 ns 1.30
E2E_Evaluator_aws-cdk 161045 ns 165572 ns 0.97
E2E_Evaluator_babelrc 427933 ns 406072 ns 1.05
E2E_Evaluator_cerebrum-criminal-case 2545579 ns 2311479 ns 1.10
E2E_Evaluator_clang-format 260839 ns 238950 ns 1.09
E2E_Evaluator_cmake-presets 17435462 ns 16770373 ns 1.04
E2E_Evaluator_code-climate 597512 ns 498603 ns 1.20
E2E_Evaluator_cql2 1243145 ns 1432801 ns 0.87
E2E_Evaluator_cspell 1704249 ns 1816423 ns 0.94
E2E_Evaluator_cypress 872841 ns 774250 ns 1.13
E2E_Evaluator_deno 893037 ns 1190868 ns 0.75
E2E_Evaluator_dependabot 914710 ns 1037945 ns 0.88
E2E_Evaluator_draft-04 19487018 ns 21925400 ns 0.89
E2E_Evaluator_fabric-mod 1954853 ns 2488411 ns 0.79
E2E_Evaluator_geojson 17921603 ns 22573303 ns 0.79
E2E_Evaluator_gitpod-configuration 527401 ns 626068 ns 0.84
E2E_Evaluator_helm-chart-lock 876628 ns 1045529 ns 0.84
E2E_Evaluator_importmap 238689 ns 240601 ns 0.99
E2E_Evaluator_jasmine 308232 ns 252747 ns 1.22
E2E_Evaluator_jsconfig 1095683 ns 999148 ns 1.10
E2E_Evaluator_jshintrc 2688319 ns 2712259 ns 0.99
E2E_Evaluator_krakend 486459 ns 518268 ns 0.94
E2E_Evaluator_lazygit 344628 ns 345845 ns 1.00
E2E_Evaluator_lerna 367958 ns 368008 ns 1.00
E2E_Evaluator_nest-cli 516891 ns 482723 ns 1.07
E2E_Evaluator_omc 107218 ns 105353 ns 1.02
E2E_Evaluator_omnisharp 1185388 ns 1173692 ns 1.01
E2E_Evaluator_openapi 30318269 ns 34546013 ns 0.88
E2E_Evaluator_pre-commit-hooks 1573748 ns 1722749 ns 0.91
E2E_Evaluator_pulumi 1553939 ns 1744217 ns 0.89
E2E_Evaluator_semantic-release 176256 ns 194941 ns 0.90
E2E_Evaluator_stale 289162 ns 360651 ns 0.80
E2E_Evaluator_stylecop 717162 ns 876056 ns 0.82
E2E_Evaluator_tmuxinator 182239 ns 207299 ns 0.88
E2E_Evaluator_ui5 1665406 ns 1748910 ns 0.95
E2E_Evaluator_ui5-manifest 7971960 ns 13011115 ns 0.61
E2E_Evaluator_unreal-engine-uproject 1147577 ns 1405460 ns 0.82
E2E_Evaluator_users-array 2378763 ns 2801879 ns 0.85
E2E_Evaluator_vercel 771676 ns 957311 ns 0.81
E2E_Evaluator_yamllint 25040 ns 29638 ns 0.84

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Details
Benchmark suite Current: d6f2e44 Previous: e8b95e6 Ratio
Schema_Tracker_ISO_Language 3522804.6515149944 ns/iter 3647622.441624358 ns/iter 0.97
Schema_Tracker_ISO_Language_To_JSON 15005222.782608895 ns/iter 14899313.61702039 ns/iter 1.01
Schema_Frame_WoT_References 3256276.8472219943 ns/iter 3194058.457398822 ns/iter 1.02
Schema_Frame_OMC_References 14671794.723402312 ns/iter 14494854.854165832 ns/iter 1.01
Schema_Frame_OMC_Locations 13595213.90195948 ns/iter 13372525.250000186 ns/iter 1.02
Schema_Frame_ISO_Language_Locations 69707986.89999357 ns/iter 66318985.39999384 ns/iter 1.05
Schema_Frame_ISO_Language_Root 261.7407041709218 ns/iter 254.58042570680573 ns/iter 1.03
Schema_Frame_KrakenD_References 28171097.999997985 ns/iter 27456353.12000104 ns/iter 1.03
Schema_Frame_KrakenD_Reachable 418177591.5000117 ns/iter 405620175.50001884 ns/iter 1.03
Schema_Frame_ISO_Language_Locations_To_JSON 160365785.75000247 ns/iter 158002590.74998733 ns/iter 1.01
Schema_Frame_Many_Resources_References 277899175.3333457 ns/iter 269910975.66667575 ns/iter 1.03
Schema_Frame_Deeply_Nested_References 9043091.28947333 ns/iter 9017393.077922495 ns/iter 1.00
Schema_Bundle_Meta_2020_12 889554.4099611167 ns/iter 889144.3642148532 ns/iter 1.00
Schema_Format_ISO_Language_To_JSON 73667482.77777585 ns/iter 69658260.44442262 ns/iter 1.06
E2E_Compiler_adaptivecard 41395870.11764648 ns/iter 40391964.72221976 ns/iter 1.02
E2E_Compiler_ansible_meta 18025886.282051336 ns/iter 17758583.124998495 ns/iter 1.02
E2E_Compiler_aws_cdk 199267.12673268066 ns/iter 193703.2371618015 ns/iter 1.03
E2E_Compiler_babelrc 1532871.1873636723 ns/iter 1488346.7876856783 ns/iter 1.03
E2E_Compiler_clang_format 11576513.450000903 ns/iter 11421026.721312374 ns/iter 1.01
E2E_Compiler_cmake_presets 18595394.31579175 ns/iter 18346951.473682493 ns/iter 1.01
E2E_Compiler_code_climate 1535226.1768559034 ns/iter 1490474.04680856 ns/iter 1.03
E2E_Compiler_cql2 8996679.987179644 ns/iter 8817776.125000875 ns/iter 1.02
E2E_Compiler_cspell 16644176.809523156 ns/iter 15931728.046510661 ns/iter 1.04
E2E_Compiler_cypress 2654019.401515312 ns/iter 2653294.465908764 ns/iter 1.00
E2E_Compiler_deno 4954184.770833573 ns/iter 4855488.645833677 ns/iter 1.02
E2E_Compiler_dependabot 2387119.1672354797 ns/iter 2370615.87118637 ns/iter 1.01
E2E_Compiler_draft_04 1603513.3672057341 ns/iter 1590990.7823127485 ns/iter 1.01
E2E_Compiler_fabric_mod 2845881.4612242943 ns/iter 2806987.705645545 ns/iter 1.01
E2E_Compiler_geojson 14838905.520832667 ns/iter 14655706.04166781 ns/iter 1.01
E2E_Compiler_gitpod_configuration 3103727.906666589 ns/iter 3021162.5948276115 ns/iter 1.03
E2E_Compiler_helm_chart_lock 378708.2847109781 ns/iter 384245.59078877076 ns/iter 0.99
E2E_Compiler_importmap 154915.47876105964 ns/iter 150084.3134996812 ns/iter 1.03
E2E_Compiler_jasmine 759789.9105779363 ns/iter 738472.5126849752 ns/iter 1.03
E2E_Compiler_jshintrc 2562072.133828883 ns/iter 2575355.732852136 ns/iter 0.99
E2E_Compiler_jsconfig 14574868.04166545 ns/iter 14566816.020831652 ns/iter 1.00
E2E_Compiler_krakend 99903815.57143532 ns/iter 95142845.28571741 ns/iter 1.05
E2E_Compiler_lazygit 21699901.34375155 ns/iter 21618750.272726614 ns/iter 1.00
E2E_Compiler_lerna 884841.3837356033 ns/iter 868429.8688726412 ns/iter 1.02
E2E_Compiler_nest_cli 4701239.391891931 ns/iter 4598745.163398948 ns/iter 1.02
E2E_Compiler_omc 107176551.33331998 ns/iter 103652848.66666494 ns/iter 1.03
E2E_Compiler_omnisharp 4263350.642424319 ns/iter 4161337.835294302 ns/iter 1.02
E2E_Compiler_openapi 15799522.477273988 ns/iter 15587447.266665954 ns/iter 1.01
E2E_Compiler_pre_commit_hooks 3150789.018018013 ns/iter 3099425.114537713 ns/iter 1.02
E2E_Compiler_pulumi 2478171.1357141896 ns/iter 2449419.0815604036 ns/iter 1.01
E2E_Compiler_semantic_release 884772.8432365456 ns/iter 854106.1741779099 ns/iter 1.04
E2E_Compiler_stale 883076.8876261993 ns/iter 852682.4872107592 ns/iter 1.04
E2E_Compiler_stylecop 3657626.4450260596 ns/iter 3607331.051282414 ns/iter 1.01
E2E_Compiler_tmuxinator 1052354.879154097 ns/iter 1033969.6611941323 ns/iter 1.02
E2E_Compiler_ui5 32000754.818181 ns/iter 31684033.409093942 ns/iter 1.01
E2E_Compiler_ui5_manifest 199853467.33331728 ns/iter 192345956.99996743 ns/iter 1.04
E2E_Compiler_unreal_engine_uproject 2803031.3388430956 ns/iter 2764129.8920002556 ns/iter 1.01
E2E_Compiler_users_array 448966.6617172423 ns/iter 437402.55562538916 ns/iter 1.03
E2E_Compiler_vercel 8781210.925000949 ns/iter 8738024.987499671 ns/iter 1.00
E2E_Compiler_yamllint 175705.83726123523 ns/iter 171674.8466633746 ns/iter 1.02
E2E_Evaluator_adaptivecard 18886.037708753847 ns/iter 18225.10630411049 ns/iter 1.04
E2E_Evaluator_ansible_meta 170443.67146340624 ns/iter 171062.10585091906 ns/iter 1.00
E2E_Evaluator_aws_cdk 38465.06956092554 ns/iter 38352.013498623026 ns/iter 1.00
E2E_Evaluator_babelrc 94549.77905911396 ns/iter 90055.14983338311 ns/iter 1.05
E2E_Evaluator_cerebrum_criminal_case 935600.9612299342 ns/iter 929862.7306176111 ns/iter 1.01
E2E_Evaluator_clang_format 92689.63031199406 ns/iter 90060.901372331 ns/iter 1.03
E2E_Evaluator_cmake_presets 4112365.192982688 ns/iter 3998416.8742856644 ns/iter 1.03
E2E_Evaluator_code_climate 157115.75488653028 ns/iter 150652.92651826193 ns/iter 1.04
E2E_Evaluator_cql2 150800.73417719806 ns/iter 149679.97219844544 ns/iter 1.01
E2E_Evaluator_cspell 532002.2763856576 ns/iter 524237.87658933375 ns/iter 1.01
E2E_Evaluator_cypress 154066.9893593425 ns/iter 153373.43142417542 ns/iter 1.00
E2E_Evaluator_deno 305993.3814074572 ns/iter 299832.86007702205 ns/iter 1.02
E2E_Evaluator_dependabot 274876.04741213395 ns/iter 273646.22139496426 ns/iter 1.00
E2E_Evaluator_draft_04 5790722.1111115655 ns/iter 5683457.388430319 ns/iter 1.02
E2E_Evaluator_fabric_mod 604021.8003428286 ns/iter 591829.4725274418 ns/iter 1.02
E2E_Evaluator_geojson 10444078.745763363 ns/iter 8752140.972602904 ns/iter 1.19
E2E_Evaluator_gitpod_configuration 181633.08055995728 ns/iter 181295.79932936825 ns/iter 1.00
E2E_Evaluator_helm_chart_lock 401294.09179023386 ns/iter 392567.51010101626 ns/iter 1.02
E2E_Evaluator_importmap 31177.401817265156 ns/iter 30609.093774763813 ns/iter 1.02
E2E_Evaluator_jasmine 92374.43754113671 ns/iter 91504.108051396 ns/iter 1.01
E2E_Evaluator_jshintrc 1045707.0868263358 ns/iter 1032658.0162241366 ns/iter 1.01
E2E_Evaluator_jsconfig 325745.9821428487 ns/iter 322340.508965503 ns/iter 1.01
E2E_Evaluator_krakend 146758.98383370865 ns/iter 143634.40422045632 ns/iter 1.02
E2E_Evaluator_lazygit 103686.73913687655 ns/iter 102747.79568155111 ns/iter 1.01
E2E_Evaluator_lerna 151853.28289331988 ns/iter 150578.03212677708 ns/iter 1.01
E2E_Evaluator_nest_cli 145609.4786749371 ns/iter 144829.59046051803 ns/iter 1.01
E2E_Evaluator_omc 15275.556835570838 ns/iter 15149.267649611658 ns/iter 1.01
E2E_Evaluator_omnisharp 473992.25321602327 ns/iter 470379.87752360204 ns/iter 1.01
E2E_Evaluator_openapi 9216822.368421461 ns/iter 8876365.666667541 ns/iter 1.04
E2E_Evaluator_pre_commit_hooks 422651.74271843035 ns/iter 419670.3270971375 ns/iter 1.01
E2E_Evaluator_pulumi 662492.7215311169 ns/iter 675153.865294645 ns/iter 0.98
E2E_Evaluator_semantic_release 74393.68456376721 ns/iter 72254.08171975962 ns/iter 1.03
E2E_Evaluator_stale 122286.77418215216 ns/iter 120660.44878305244 ns/iter 1.01
E2E_Evaluator_stylecop 211174.68300850946 ns/iter 210620.23764147406 ns/iter 1.00
E2E_Evaluator_tmuxinator 78171.91642840797 ns/iter 76436.03965141036 ns/iter 1.02
E2E_Evaluator_ui5 379075.6910880084 ns/iter 374883.5512958959 ns/iter 1.01
E2E_Evaluator_ui5_manifest 2224090.531250056 ns/iter 2186475.7089783936 ns/iter 1.02
E2E_Evaluator_unreal_engine_uproject 380044.9277566339 ns/iter 372148.5586681029 ns/iter 1.02
E2E_Evaluator_users_array 526382.379746803 ns/iter 515204.3179448781 ns/iter 1.02
E2E_Evaluator_vercel 286542.74959082843 ns/iter 280651.818145474 ns/iter 1.02
E2E_Evaluator_yamllint 6416.98885157568 ns/iter 6315.562353199448 ns/iter 1.02
JSONLD_Catalog_Simple 14905587.645832459 ns/iter 14114663.55101979 ns/iter 1.06
JSONLD_Catalog_Override_Agreeing 14801393.212765783 ns/iter 14531438.500000603 ns/iter 1.02
JSONLD_Catalog_Override_Shadowing 23502083.100000463 ns/iter 23675119.73333573 ns/iter 0.99
Micro_Draft4_Meta_1_No_Callback 139.25831794887443 ns/iter 137.88084613929914 ns/iter 1.01
Micro_Draft4_Required_Properties 594.090418171726 ns/iter 591.4859713611602 ns/iter 1.00
Micro_Draft4_Many_Optional_Properties_Minimal_Match 17.727485034270888 ns/iter 17.957407485839095 ns/iter 0.99
Micro_Draft4_Few_Optional_Properties_Minimal_Match 8.1072896615181 ns/iter 8.074915588722162 ns/iter 1.00
Micro_Draft4_Items_Schema 260.45826069692583 ns/iter 256.68632386175597 ns/iter 1.01
Micro_Draft4_Nested_Object 1.1031082195505346 ns/iter 1.10300569498006 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 247.5309164438059 ns/iter 248.2991187180465 ns/iter 1.00
Micro_Draft4_Properties_Triad_Closed 204.05547358766137 ns/iter 203.47152523928898 ns/iter 1.00
Micro_Draft4_Properties_Triad_Required 256.7331702977121 ns/iter 255.3230654729455 ns/iter 1.01
Micro_Draft4_Properties_Closed 48.57100723365265 ns/iter 48.113247294733284 ns/iter 1.01
Micro_Draft4_Non_Recursive_Ref 11.750637160248292 ns/iter 11.682347565460471 ns/iter 1.01
Micro_Draft4_Pattern_Properties_Empty 124.03917595526038 ns/iter 122.89425896205442 ns/iter 1.01
Micro_Draft4_Ref_To_Single_Property 8.099672045876293 ns/iter 8.043408371788692 ns/iter 1.01
Micro_Draft4_Additional_Properties_Type 31.199741682977553 ns/iter 31.03848660266727 ns/iter 1.01
Micro_Draft4_Nested_Oneof 44.689143748475104 ns/iter 43.808082928134624 ns/iter 1.02
Micro_Draft4_Short_Enum 8.466906326039426 ns/iter 8.146182157454321 ns/iter 1.04
Micro_Draft4_Long_Enum 11.745487048315137 ns/iter 11.749778791913894 ns/iter 1.00
Micro_Draft4_Long_Enum_Short_Strings 8.452456652678805 ns/iter 8.130262946590754 ns/iter 1.04
Micro_Draft4_Type_Object 2.771639639781608 ns/iter 2.7748350510293887 ns/iter 1.00
Micro_Draft4_Ref_Single_100 1424183.425661858 ns/iter 1409078.1696968589 ns/iter 1.01
Micro_Draft4_Compile_Ref_Many_Nested 967208.8252426749 ns/iter 962778.2949246964 ns/iter 1.00
Micro_Draft4_Compile_Wrap 1415525.1801618969 ns/iter 1411774.5513078875 ns/iter 1.00
Micro_Draft6_Property_Names 132.40689502738888 ns/iter 131.50346622500368 ns/iter 1.01
Micro_Draft6_Compile_FHIR 12594041317.000006 ns/iter 13335856717.999945 ns/iter 0.94
Micro_Draft7_If_Then_Else 20.831677784357588 ns/iter 20.67852279625573 ns/iter 1.01
Micro_2019_09_Unevaluated_Properties 24.228520188543676 ns/iter 24.18122076952617 ns/iter 1.00
Micro_2019_09_Compile_Wrap 207163354.99999633 ns/iter 204847035.6666788 ns/iter 1.01
Micro_2020_12_Dynamic_Ref 561.2528901219787 ns/iter 556.5209279977695 ns/iter 1.01
Micro_2020_12_Dynamic_Ref_Single 2.4825924799596546 ns/iter 2.4649439849451986 ns/iter 1.01
Micro_2020_12_Simple_Output_Mask 770.4840265127739 ns/iter 749.6790077729229 ns/iter 1.03
Micro_2020_12_Simple_Output_Annotations 39897.24912941559 ns/iter 39741.8693284917 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotation_Dropping 1038441.3594674389 ns/iter 1042159.6775147693 ns/iter 1.00
Micro_2020_12_Compile_NonCircular_Shared_Refs 566102.1813803916 ns/iter 553530.8712479874 ns/iter 1.02
Micro_2020_12_Exhaustive_Deep_Numeric 6004.351456831356 ns/iter 5981.665575865961 ns/iter 1.00
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput 28310.073848541993 ns/iter 28204.689624688144 ns/iter 1.00
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput 13822.675553371513 ns/iter 13682.2190137556 ns/iter 1.01
Micro_2020_12_Exhaustive_Deep_Numeric_Fail 100.24423150491371 ns/iter 98.58833339540374 ns/iter 1.02
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput 1856.8084688978536 ns/iter 1846.849901200762 ns/iter 1.01
TestSuite_Parse_WoT 16193127.604651637 ns/iter 15959372.749999933 ns/iter 1.01
Alterschema_Check_Readibility_ISO_Language_Set_3 258083656.00001553 ns/iter 250472667.33330765 ns/iter 1.03
Alterschema_Check_Readibility_OMC 72925773.70000117 ns/iter 70734455.40000875 ns/iter 1.03
Alterschema_Check_Readibility_KrakenD 1085830675.000011 ns/iter 1052340587.9999927 ns/iter 1.03
Alterschema_Apply_Readibility_KrakenD 114422267318.99995 ns/iter 109767534681.00003 ns/iter 1.04
Alterschema_Check_Invalid_External_Refs 168476757.7499997 ns/iter 160660142.49997807 ns/iter 1.05

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

JavaScript (linux/llvm)

Details
Benchmark suite Current: d6f2e44 Previous: e8b95e6 Ratio
E2E_Evaluator_adaptivecard 92981 ns 91375 ns 1.02
E2E_Evaluator_ansible-meta 393532 ns 375467 ns 1.05
E2E_Evaluator_aws-cdk 118139 ns 111562 ns 1.06
E2E_Evaluator_babelrc 310470 ns 289023 ns 1.07
E2E_Evaluator_cerebrum-criminal-case 1971545 ns 1763866 ns 1.12
E2E_Evaluator_clang-format 218610 ns 196945 ns 1.11
E2E_Evaluator_cmake-presets 15178888 ns 13351196 ns 1.14
E2E_Evaluator_code-climate 492574 ns 433213 ns 1.14
E2E_Evaluator_cql2 1001905 ns 874379 ns 1.15
E2E_Evaluator_cspell 1598053 ns 1220472 ns 1.31
E2E_Evaluator_cypress 823930 ns 686126 ns 1.20
E2E_Evaluator_deno 946281 ns 845221 ns 1.12
E2E_Evaluator_dependabot 906203 ns 819869 ns 1.11
E2E_Evaluator_draft-04 15994446 ns 15075139 ns 1.06
E2E_Evaluator_fabric-mod 2027003 ns 1775835 ns 1.14
E2E_Evaluator_geojson 17969441 ns 15901162 ns 1.13
E2E_Evaluator_gitpod-configuration 629746 ns 533683 ns 1.18
E2E_Evaluator_helm-chart-lock 878242 ns 863997 ns 1.02
E2E_Evaluator_importmap 287554 ns 270002 ns 1.07
E2E_Evaluator_jasmine 229297 ns 212917 ns 1.08
E2E_Evaluator_jsconfig 1219550 ns 1071872 ns 1.14
E2E_Evaluator_jshintrc 2799459 ns 2504394 ns 1.12
E2E_Evaluator_krakend 492142 ns 484110 ns 1.02
E2E_Evaluator_lazygit 395608 ns 338734 ns 1.17
E2E_Evaluator_lerna 410314 ns 371480 ns 1.10
E2E_Evaluator_nest-cli 501602 ns 444289 ns 1.13
E2E_Evaluator_omc 90038 ns 89477 ns 1.01
E2E_Evaluator_omnisharp 1356993 ns 1134404 ns 1.20
E2E_Evaluator_openapi 32273198 ns 28693454 ns 1.12
E2E_Evaluator_pre-commit-hooks 1864298 ns 1526608 ns 1.22
E2E_Evaluator_pulumi 1934218 ns 1514602 ns 1.28
E2E_Evaluator_semantic-release 212791 ns 194514 ns 1.09
E2E_Evaluator_stale 330592 ns 299771 ns 1.10
E2E_Evaluator_stylecop 1137252 ns 942905 ns 1.21
E2E_Evaluator_tmuxinator 206309 ns 191742 ns 1.08
E2E_Evaluator_ui5 1646265 ns 1595506 ns 1.03
E2E_Evaluator_ui5-manifest 8257431 ns 8079457 ns 1.02
E2E_Evaluator_unreal-engine-uproject 1407386 ns 1231796 ns 1.14
E2E_Evaluator_users-array 2687991 ns 2450252 ns 1.10
E2E_Evaluator_vercel 906885 ns 829974 ns 1.09
E2E_Evaluator_yamllint 20665 ns 18778 ns 1.10

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

Signed-off-by: Vansh <officialbusiness9818@gmail.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Details
Benchmark suite Current: d6f2e44 Previous: e8b95e6 Ratio
Alterschema_Check_Readibility_ISO_Language_Set_3 312645404.99978465 ns/iter 342758116.500022 ns/iter 0.91
Alterschema_Check_Readibility_OMC 82580467.37500991 ns/iter 84370978.37500574 ns/iter 0.98
Alterschema_Check_Readibility_KrakenD 1039467020.9998367 ns/iter 1037617045.999923 ns/iter 1.00
Alterschema_Apply_Readibility_KrakenD 114425319693.00035 ns/iter 118861007460.99988 ns/iter 0.96
Alterschema_Check_Invalid_External_Refs 284883847.9999358 ns/iter 292627141.9999011 ns/iter 0.97
TestSuite_Parse_WoT 22259395.687498797 ns/iter 22746825.419355974 ns/iter 0.98
Micro_2020_12_Dynamic_Ref 976.1835851622378 ns/iter 975.4580667479244 ns/iter 1.00
Micro_2020_12_Dynamic_Ref_Single 4.3596545845843035 ns/iter 4.363127685915631 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 1226.1379807725384 ns/iter 1222.6878341277395 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotations 59081.85660253544 ns/iter 59662.031231128094 ns/iter 0.99
Micro_2020_12_Simple_Output_Annotation_Dropping 1617336.0762127703 ns/iter 1643932.9488374041 ns/iter 0.98
Micro_2020_12_Compile_NonCircular_Shared_Refs 870900.6926889652 ns/iter 888507.5083013492 ns/iter 0.98
Micro_2020_12_Exhaustive_Deep_Numeric 9186.566013849653 ns/iter 9203.491108883434 ns/iter 1.00
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput 43923.08574114216 ns/iter 44482.58468692577 ns/iter 0.99
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput 22051.782753155574 ns/iter 22335.154368775748 ns/iter 0.99
Micro_2020_12_Exhaustive_Deep_Numeric_Fail 173.87097451855212 ns/iter 170.07926975109143 ns/iter 1.02
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput 2837.990618090194 ns/iter 2940.413636325347 ns/iter 0.97
Micro_2019_09_Unevaluated_Properties 32.00776136226242 ns/iter 31.78703767727177 ns/iter 1.01
Micro_2019_09_Compile_Wrap 279583348.5001822 ns/iter 302681353.0000254 ns/iter 0.92
Micro_Draft7_If_Then_Else 23.996643706122885 ns/iter 23.98022180794931 ns/iter 1.00
Micro_Draft6_Property_Names 156.3618926048732 ns/iter 156.4377812028024 ns/iter 1.00
Micro_Draft6_Compile_FHIR 11319221500.000366 ns/iter 11647998737.999842 ns/iter 0.97
Micro_Draft4_Meta_1_No_Callback 194.39472009092432 ns/iter 198.1035399585124 ns/iter 0.98
Micro_Draft4_Required_Properties 881.005979880401 ns/iter 865.2333934360697 ns/iter 1.02
Micro_Draft4_Many_Optional_Properties_Minimal_Match 22.19325797763671 ns/iter 22.128764239476375 ns/iter 1.00
Micro_Draft4_Few_Optional_Properties_Minimal_Match 16.51866445371083 ns/iter 16.51271720251497 ns/iter 1.00
Micro_Draft4_Items_Schema 347.50694615957985 ns/iter 352.6640301722841 ns/iter 0.99
Micro_Draft4_Nested_Object 1.5602794057436014 ns/iter 1.5560250402817708 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 382.2816819148719 ns/iter 376.1511847485195 ns/iter 1.02
Micro_Draft4_Properties_Triad_Closed 306.35801520243353 ns/iter 310.7496420951127 ns/iter 0.99
Micro_Draft4_Properties_Triad_Required 457.54296942112563 ns/iter 421.68504857854464 ns/iter 1.09
Micro_Draft4_Properties_Closed 64.55796127955149 ns/iter 64.57856361187531 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 9.028991121614542 ns/iter 9.095420952856117 ns/iter 0.99
Micro_Draft4_Pattern_Properties_Empty 212.41035422997064 ns/iter 212.58601790554843 ns/iter 1.00
Micro_Draft4_Ref_To_Single_Property 16.84658986664916 ns/iter 16.83991711733345 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 14.00920218903424 ns/iter 14.01453615939056 ns/iter 1.00
Micro_Draft4_Nested_Oneof 65.98155719521691 ns/iter 66.01213848627579 ns/iter 1.00
Micro_Draft4_Short_Enum 14.683776984714271 ns/iter 14.690222119231944 ns/iter 1.00
Micro_Draft4_Long_Enum 14.337377557121185 ns/iter 14.334600449837016 ns/iter 1.00
Micro_Draft4_Long_Enum_Short_Strings 14.744091318131224 ns/iter 14.690227503818598 ns/iter 1.00
Micro_Draft4_Type_Object 4.358046670742608 ns/iter 4.357945369021947 ns/iter 1.00
Micro_Draft4_Ref_Single_100 1964199.1564248956 ns/iter 2003815.2413797264 ns/iter 0.98
Micro_Draft4_Compile_Ref_Many_Nested 1345938.347490944 ns/iter 1382476.0297026867 ns/iter 0.97
Micro_Draft4_Compile_Wrap 2081016.5934719506 ns/iter 2137553.1489356225 ns/iter 0.97
JSONLD_Catalog_Simple 22705790.129029702 ns/iter 25139091.655170165 ns/iter 0.90
JSONLD_Catalog_Override_Agreeing 21979143.000011858 ns/iter 25445659.481479026 ns/iter 0.86
JSONLD_Catalog_Override_Shadowing 32987289.85713578 ns/iter 36395397.05263336 ns/iter 0.91
E2E_Compiler_adaptivecard 55926507.58334609 ns/iter 58935063.333327286 ns/iter 0.95
E2E_Compiler_ansible_meta 26449338.185186744 ns/iter 27035982.73077345 ns/iter 0.98
E2E_Compiler_aws_cdk 321410.08886848716 ns/iter 330658.2748703578 ns/iter 0.97
E2E_Compiler_babelrc 2189079.0343746855 ns/iter 2227607.8507939163 ns/iter 0.98
E2E_Compiler_clang_format 15940318.61363667 ns/iter 16237920.833332065 ns/iter 0.98
E2E_Compiler_cmake_presets 23654159.433332704 ns/iter 24606280.72413658 ns/iter 0.96
E2E_Compiler_code_climate 2156515.179012224 ns/iter 2184320.3228834732 ns/iter 0.99
E2E_Compiler_cql2 11765433.633339247 ns/iter 12179052.58181831 ns/iter 0.97
E2E_Compiler_cspell 20394127.79999371 ns/iter 21180799.382350683 ns/iter 0.96
E2E_Compiler_cypress 3476643.597016154 ns/iter 3534064.82323256 ns/iter 0.98
E2E_Compiler_deno 7188993.51546291 ns/iter 7342531.291667361 ns/iter 0.98
E2E_Compiler_dependabot 3447578.529412389 ns/iter 3480970.8514850885 ns/iter 0.99
E2E_Compiler_draft_04 2321787.07973499 ns/iter 2360756.5218851725 ns/iter 0.98
E2E_Compiler_fabric_mod 3982655.6704554153 ns/iter 4030673.6589593515 ns/iter 0.99
E2E_Compiler_geojson 20238933.771439146 ns/iter 20575738.382349834 ns/iter 0.98
E2E_Compiler_gitpod_configuration 4285769.243901219 ns/iter 4373066.687500682 ns/iter 0.98
E2E_Compiler_helm_chart_lock 584329.7366667836 ns/iter 594379.9033078837 ns/iter 0.98
E2E_Compiler_importmap 245405.52834161677 ns/iter 251943.6370262494 ns/iter 0.97
E2E_Compiler_jasmine 1125370.0739552658 ns/iter 1148030.852892431 ns/iter 0.98
E2E_Compiler_jshintrc 3698203.675531039 ns/iter 3789252.597825858 ns/iter 0.98
E2E_Compiler_jsconfig 20257903.59999259 ns/iter 20646491.41175992 ns/iter 0.98
E2E_Compiler_krakend 128932955.3999778 ns/iter 135531114.40000975 ns/iter 0.95
E2E_Compiler_lazygit 29787795.782617055 ns/iter 30707003.227276303 ns/iter 0.97
E2E_Compiler_lerna 1356573.3294577273 ns/iter 1384293.7405189185 ns/iter 0.98
E2E_Compiler_nest_cli 6503591.203702988 ns/iter 6631386.999998497 ns/iter 0.98
E2E_Compiler_omc 153494573.99997845 ns/iter 159351166.75001383 ns/iter 0.96
E2E_Compiler_omnisharp 5923818.386553411 ns/iter 6076378.478260464 ns/iter 0.97
E2E_Compiler_openapi 22550099.774185408 ns/iter 23021799.099994194 ns/iter 0.98
E2E_Compiler_pre_commit_hooks 4433701.27215208 ns/iter 4490505.116128559 ns/iter 0.99
E2E_Compiler_pulumi 3475942.2326733153 ns/iter 3540112.4467004826 ns/iter 0.98
E2E_Compiler_semantic_release 1275976.6775960051 ns/iter 1296554.6857672248 ns/iter 0.98
E2E_Compiler_stale 1292430.2394106805 ns/iter 1315041.4849058436 ns/iter 0.98
E2E_Compiler_stylecop 5469196.181104597 ns/iter 5549305.920001643 ns/iter 0.99
E2E_Compiler_tmuxinator 1599285.7608201252 ns/iter 1630878.3773147885 ns/iter 0.98
E2E_Compiler_ui5 41242051.76471792 ns/iter 44248938.62500312 ns/iter 0.93
E2E_Compiler_ui5_manifest 268604457.6665457 ns/iter 287272518.5000036 ns/iter 0.94
E2E_Compiler_unreal_engine_uproject 3890822.44692725 ns/iter 3982829.591954758 ns/iter 0.98
E2E_Compiler_users_array 701728.2532661057 ns/iter 717165.8239508198 ns/iter 0.98
E2E_Compiler_vercel 11376968.419353357 ns/iter 11641465.800001545 ns/iter 0.98
E2E_Compiler_yamllint 287094.00449708605 ns/iter 296710.870537623 ns/iter 0.97
E2E_Evaluator_adaptivecard 26568.49702045391 ns/iter 26993.072785047058 ns/iter 0.98
E2E_Evaluator_ansible_meta 294756.63219833426 ns/iter 293469.8364248976 ns/iter 1.00
E2E_Evaluator_aws_cdk 63284.858262065165 ns/iter 63233.58193314813 ns/iter 1.00
E2E_Evaluator_babelrc 119989.34870218893 ns/iter 121088.52967333216 ns/iter 0.99
E2E_Evaluator_cerebrum_criminal_case 1147379.5697475763 ns/iter 1174368.9008262889 ns/iter 0.98
E2E_Evaluator_clang_format 108008.06303551953 ns/iter 104741.902435414 ns/iter 1.03
E2E_Evaluator_cmake_presets 4977617.182481003 ns/iter 5602523.923729585 ns/iter 0.89
E2E_Evaluator_code_climate 235665.92056553965 ns/iter 233788.46153847082 ns/iter 1.01
E2E_Evaluator_cql2 235418.70662666165 ns/iter 233037.78731967343 ns/iter 1.01
E2E_Evaluator_cspell 626042.4692588786 ns/iter 646392.3941337304 ns/iter 0.97
E2E_Evaluator_cypress 196242.40922981114 ns/iter 193700.9609879402 ns/iter 1.01
E2E_Evaluator_deno 360119.25578998035 ns/iter 365086.06154649064 ns/iter 0.99
E2E_Evaluator_dependabot 396910.32654227497 ns/iter 394346.60136285133 ns/iter 1.01
E2E_Evaluator_draft_04 8212094.453332004 ns/iter 9553901.619720422 ns/iter 0.86
E2E_Evaluator_fabric_mod 791454.5248867321 ns/iter 791117.815699483 ns/iter 1.00
E2E_Evaluator_geojson 12984232.925924111 ns/iter 13631847.352942213 ns/iter 0.95
E2E_Evaluator_gitpod_configuration 281076.9413616434 ns/iter 282595.2105477101 ns/iter 0.99
E2E_Evaluator_helm_chart_lock 359606.2763563866 ns/iter 360932.1732283373 ns/iter 1.00
E2E_Evaluator_importmap 48231.34812673241 ns/iter 50210.25306928474 ns/iter 0.96
E2E_Evaluator_jasmine 126532.39567950004 ns/iter 126260.51238902929 ns/iter 1.00
E2E_Evaluator_jshintrc 1115952.7958859974 ns/iter 1121932.6624203117 ns/iter 0.99
E2E_Evaluator_jsconfig 457846.553664985 ns/iter 463742.42514958495 ns/iter 0.99
E2E_Evaluator_krakend 222139.71201014833 ns/iter 223413.22952379123 ns/iter 0.99
E2E_Evaluator_lazygit 155111.2543878645 ns/iter 153968.54853173764 ns/iter 1.01
E2E_Evaluator_lerna 169710.81842489168 ns/iter 173802.8316125808 ns/iter 0.98
E2E_Evaluator_nest_cli 215175.48124433157 ns/iter 212531.565729876 ns/iter 1.01
E2E_Evaluator_omc 24417.847442930048 ns/iter 24324.57632998262 ns/iter 1.00
E2E_Evaluator_omnisharp 600502.1705226956 ns/iter 596614.3707482951 ns/iter 1.01
E2E_Evaluator_openapi 15762657.837216847 ns/iter 19095614.32432531 ns/iter 0.83
E2E_Evaluator_pre_commit_hooks 543993.7052470628 ns/iter 550478.5069766766 ns/iter 0.99
E2E_Evaluator_pulumi 785405.9351233388 ns/iter 791049.8629215591 ns/iter 0.99
E2E_Evaluator_semantic_release 108668.95127544474 ns/iter 110121.26180458188 ns/iter 0.99
E2E_Evaluator_stale 178037.42853455106 ns/iter 179056.39402593428 ns/iter 0.99
E2E_Evaluator_stylecop 319615.26081019343 ns/iter 322240.39653557097 ns/iter 0.99
E2E_Evaluator_tmuxinator 111398.92087358283 ns/iter 112866.40959820966 ns/iter 0.99
E2E_Evaluator_ui5 628428.8909575564 ns/iter 632317.8249098441 ns/iter 0.99
E2E_Evaluator_ui5_manifest 3103209.6888884553 ns/iter 3332027.684685166 ns/iter 0.93
E2E_Evaluator_unreal_engine_uproject 503275.7343976758 ns/iter 503337.05632774293 ns/iter 1.00
E2E_Evaluator_users_array 686977.1245098544 ns/iter 678570.6327130878 ns/iter 1.01
E2E_Evaluator_vercel 356860.9955067685 ns/iter 356432.67617110733 ns/iter 1.00
E2E_Evaluator_yamllint 13439.837119414431 ns/iter 13237.096745008277 ns/iter 1.02
Schema_Format_ISO_Language_To_JSON 101991558.00007378 ns/iter 107828502.8333615 ns/iter 0.95
Schema_Bundle_Meta_2020_12 1458032.618557274 ns/iter 1483029.345987514 ns/iter 0.98
Schema_Frame_WoT_References 4702404.651008643 ns/iter 4796616.061644397 ns/iter 0.98
Schema_Frame_OMC_References 20966120.000001397 ns/iter 22967761.000002913 ns/iter 0.91
Schema_Frame_OMC_Locations 19724148.833334867 ns/iter 21449625.500000525 ns/iter 0.92
Schema_Frame_ISO_Language_Locations 93712603.57141052 ns/iter 100197188.71428397 ns/iter 0.94
Schema_Frame_ISO_Language_Root 460.20882236666154 ns/iter 430.2199634052037 ns/iter 1.07
Schema_Frame_KrakenD_References 37828794.78945975 ns/iter 40434182.11765183 ns/iter 0.94
Schema_Frame_KrakenD_Reachable 445546513.99994326 ns/iter 461121283.99988705 ns/iter 0.97
Schema_Frame_ISO_Language_Locations_To_JSON 198522020.6665872 ns/iter 202845707.00005135 ns/iter 0.98
Schema_Frame_Many_Resources_References 347777329.9998717 ns/iter 356462469.500002 ns/iter 0.98
Schema_Frame_Deeply_Nested_References 11124260.111111134 ns/iter 11835933.81355715 ns/iter 0.94
Schema_Tracker_ISO_Language 5203843.69117972 ns/iter 5257110.837399198 ns/iter 0.99
Schema_Tracker_ISO_Language_To_JSON 19082415.540541094 ns/iter 19476388.54053858 ns/iter 0.98

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

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

JavaScript (linux/gcc)

Details
Benchmark suite Current: d6f2e44 Previous: e8b95e6 Ratio
E2E_Evaluator_adaptivecard 120039 ns 121791 ns 0.99
E2E_Evaluator_ansible-meta 515224 ns 538733 ns 0.96
E2E_Evaluator_aws-cdk 145694 ns 158006 ns 0.92
E2E_Evaluator_babelrc 339146 ns 340458 ns 1.00
E2E_Evaluator_cerebrum-criminal-case 2460843 ns 2505331 ns 0.98
E2E_Evaluator_clang-format 243744 ns 264295 ns 0.92
E2E_Evaluator_cmake-presets 18019188 ns 19535349 ns 0.92
E2E_Evaluator_code-climate 528517 ns 525129 ns 1.01
E2E_Evaluator_cql2 1328023 ns 1332071 ns 1.00
E2E_Evaluator_cspell 1479057 ns 1541179 ns 0.96
E2E_Evaluator_cypress 763967 ns 805815 ns 0.95
E2E_Evaluator_deno 1048767 ns 1087252 ns 0.96
E2E_Evaluator_dependabot 1114084 ns 1137523 ns 0.98
E2E_Evaluator_draft-04 21324634 ns 23899190 ns 0.89
E2E_Evaluator_fabric-mod 2309722 ns 2405831 ns 0.96
E2E_Evaluator_geojson 23327424 ns 25504238 ns 0.91
E2E_Evaluator_gitpod-configuration 709464 ns 720945 ns 0.98
E2E_Evaluator_helm-chart-lock 993194 ns 1047110 ns 0.95
E2E_Evaluator_importmap 269272 ns 264390 ns 1.02
E2E_Evaluator_jasmine 289996 ns 302776 ns 0.96
E2E_Evaluator_jsconfig 1194575 ns 1243325 ns 0.96
E2E_Evaluator_jshintrc 2721061 ns 2870084 ns 0.95
E2E_Evaluator_krakend 655255 ns 670105 ns 0.98
E2E_Evaluator_lazygit 495321 ns 514754 ns 0.96
E2E_Evaluator_lerna 450558 ns 483947 ns 0.93
E2E_Evaluator_nest-cli 591589 ns 610897 ns 0.97
E2E_Evaluator_omc 119233 ns 120438 ns 0.99
E2E_Evaluator_omnisharp 1400385 ns 1439838 ns 0.97
E2E_Evaluator_openapi 43534695 ns 47267543 ns 0.92
E2E_Evaluator_pre-commit-hooks 1965402 ns 2009492 ns 0.98
E2E_Evaluator_pulumi 1852838 ns 1941975 ns 0.95
E2E_Evaluator_semantic-release 252566 ns 254677 ns 0.99
E2E_Evaluator_stale 396830 ns 408087 ns 0.97
E2E_Evaluator_stylecop 1192104 ns 1209889 ns 0.99
E2E_Evaluator_tmuxinator 228528 ns 228123 ns 1.00
E2E_Evaluator_ui5 2213042 ns 2248577 ns 0.98
E2E_Evaluator_ui5-manifest 10235168 ns 11938973 ns 0.86
E2E_Evaluator_unreal-engine-uproject 1492009 ns 1547765 ns 0.96
E2E_Evaluator_users-array 2966530 ns 3000101 ns 0.99
E2E_Evaluator_vercel 958067 ns 995125 ns 0.96
E2E_Evaluator_yamllint 25387 ns 26017 ns 0.98

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

@augmentcode

augmentcode Bot commented Sep 2, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR extends canonicalization of unevaluatedProperties.
It recognizes schemas whose sole in-place branch is allOf: [{ $ref: ... }].
The referenced target is resolved through SchemaFrame to honor effective base URIs.
Known target properties names are copied to the local schema as true schemas.
The original unevaluatedProperties keyword is then renamed to additionalProperties.
The referenced branch itself remains unchanged, preserving its validation constraints.
The rule rejects targets with further references, in-place applicators, or property-evaluating keywords.
It also limits the optimization to modern JSON Schema applicator vocabularies.
New 2019-09 and 2020-12 canonicalizer tests cover the successful transformation.
Additional negative tests cover anyOf, additionalProperties, patterns, conditionals, and uncovered required names.
The canonicalizer build list and rule registration now include the new transform.
The aim is to eliminate a common real-world unevaluatedProperties pattern that previously survived canonicalization.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@Vansh-kap-98
Vansh-kap-98 marked this pull request as ready for review September 2, 2026 21:32

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

if (entry.is_string() &&
!(target_properties &&
target_properties->defines(entry.to_string()))) {
return false;

@augmentcode augmentcode Bot Sep 2, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h:132: This only defers the rewrite: required_properties_in_properties subsequently adds the uncovered name to the target's properties, the canonicalizer restarts, and this rule then succeeds and copies it locally. For a target requiring extra but initially defining only shared, the resulting additionalProperties accepts extra, while the original unevaluatedProperties: false rejects it because required does not evaluate that property.

Severity: high

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

2 issues found across 5 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="test/canonicalizer/canonicalizer_2019_09_test.cc">

<violation number="1" location="test/canonicalizer/canonicalizer_2019_09_test.cc:796">
P2: These tests assert only that the canonicalized output matches the expected structure and is a valid schema; they never check that the rewrite preserves runtime evaluation behavior. Since this rewrite merges referenced property names into `properties` and converts `unevaluatedProperties` to `additionalProperties` (and the PR claims no behavior change), an evaluator-level equivalence test comparing the original and canonicalized schema against a set of object instances would guard against semantic regressions that the structural assertion cannot catch.</violation>
</file>

<file name="src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h">

<violation number="1" location="src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h:143">
P1: When a referenced schema's `required` name is added to `properties` by a later canonicalization rule, this loop copies that synthesized name into the enclosing `properties`. The subsequent `additionalProperties` rewrite then accepts a property that the original `unevaluatedProperties: false` rejects; preserve the uncovered-required guard across canonicalization passes.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

if (properties && properties->defines(entry.first)) {
continue;
}
this->properties_.emplace_back(entry.first);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1: When a referenced schema's required name is added to properties by a later canonicalization rule, this loop copies that synthesized name into the enclosing properties. The subsequent additionalProperties rewrite then accepts a property that the original unevaluatedProperties: false rejects; preserve the uncovered-required guard across canonicalization passes.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h, line 143:

<comment>When a referenced schema's `required` name is added to `properties` by a later canonicalization rule, this loop copies that synthesized name into the enclosing `properties`. The subsequent `additionalProperties` rewrite then accepts a property that the original `unevaluatedProperties: false` rejects; preserve the uncovered-required guard across canonicalization passes.</comment>

<file context>
@@ -0,0 +1,173 @@
+        if (properties && properties->defines(entry.first)) {
+          continue;
+        }
+        this->properties_.emplace_back(entry.first);
+      }
+    }
</file context>

}
})JSON");

CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema());

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: These tests assert only that the canonicalized output matches the expected structure and is a valid schema; they never check that the rewrite preserves runtime evaluation behavior. Since this rewrite merges referenced property names into properties and converts unevaluatedProperties to additionalProperties (and the PR claims no behavior change), an evaluator-level equivalence test comparing the original and canonicalized schema against a set of object instances would guard against semantic regressions that the structural assertion cannot catch.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At test/canonicalizer/canonicalizer_2019_09_test.cc, line 796:

<comment>These tests assert only that the canonicalized output matches the expected structure and is a valid schema; they never check that the rewrite preserves runtime evaluation behavior. Since this rewrite merges referenced property names into `properties` and converts `unevaluatedProperties` to `additionalProperties` (and the PR claims no behavior change), an evaluator-level equivalence test comparing the original and canonicalized schema against a set of object instances would guard against semantic regressions that the structural assertion cannot catch.</comment>

<file context>
@@ -746,6 +746,378 @@ TEST(items_implicit_1) {
+    }
+  })JSON");
+
+  CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema());
+}
+
</file context>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant