# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # User-Defined Out-Parameter Test Suite # Mirrors builtin coverage but routes through the my_floor helper rule # to ensure planner handling stays correct for user-defined function rules. cases: - note: user_fcn_out_param_simple_binding data: {} modules: - | package test my_floor(x) := y if { floor(x, y) } rule1 if { my_floor(1.001, x) x == 1 } query: data.test.rule1 want_result: true - note: user_fcn_out_param_scheduler_reordering data: {} modules: - | package test my_floor(x) := y if { floor(x, y) } rule2 if { x == 1 my_floor(1.001, x) } query: data.test.rule2 want_result: true - note: user_fcn_out_param_existing_binding_equality data: {} modules: - | package test my_floor(x) := y if { floor(x, y) } rule3 if { x := 1 my_floor(1.001, x) } query: data.test.rule3 want_result: true - note: user_fcn_out_param_existing_binding_mismatch data: {} modules: - | package test my_floor(x) := y if { floor(x, y) } rule31 if { x := 2 my_floor(1.001, x) } query: data.test.rule31 want_result: "#undefined" - note: user_fcn_out_param_literal_success data: {} modules: - | package test my_floor(x) := y if { floor(x, y) } rule4 if { my_floor(1.001, 1) } query: data.test.rule4 want_result: true - note: user_fcn_out_param_literal_failure data: {} modules: - | package test my_floor(x) := y if { floor(x, y) } rule5 if { my_floor(1.001, 2) } query: data.test.rule5 want_result: "#undefined"