kumi 0.0.30 → 0.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -1
- data/README.md +31 -99
- data/data/kernels/ruby/core/arithmetic.yaml +2 -2
- data/docs/COMPOSED_SCHEMAS.md +137 -0
- data/docs/SCHEMA_IMPORTS.md +275 -0
- data/docs/SYNTAX.md +48 -0
- data/golden/array_element/expected/schema_ruby.rb +2 -27
- data/golden/array_index/expected/nast.txt +6 -6
- data/golden/array_index/expected/schema_ruby.rb +4 -31
- data/golden/array_operations/expected/lir_06_const_prop.txt +4 -8
- data/golden/array_operations/expected/schema_javascript.mjs +4 -8
- data/golden/array_operations/expected/schema_ruby.rb +10 -43
- data/golden/cascade_logic/expected/lir_06_const_prop.txt +7 -14
- data/golden/cascade_logic/expected/schema_javascript.mjs +7 -14
- data/golden/cascade_logic/expected/schema_ruby.rb +11 -45
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +8 -18
- data/golden/chained_fusion/expected/schema_javascript.mjs +8 -18
- data/golden/chained_fusion/expected/schema_ruby.rb +14 -53
- data/golden/decimal_explicit/expected/schema_ruby.rb +4 -31
- data/golden/element_arrays/expected/lir_06_const_prop.txt +5 -11
- data/golden/element_arrays/expected/schema_javascript.mjs +5 -11
- data/golden/element_arrays/expected/schema_ruby.rb +13 -50
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +4 -31
- data/golden/example_xpto/expected/ast.txt +23 -0
- data/golden/example_xpto/expected/input_plan.txt +1 -0
- data/golden/example_xpto/expected/lir_00_unoptimized.txt +16 -0
- data/golden/example_xpto/expected/lir_01_hoist_scalar_references.txt +16 -0
- data/golden/example_xpto/expected/lir_02_inlined.txt +16 -0
- data/golden/example_xpto/expected/lir_03_cse.txt +16 -0
- data/golden/example_xpto/expected/lir_04_1_loop_fusion.txt +16 -0
- data/golden/example_xpto/expected/lir_04_loop_invcm.txt +16 -0
- data/golden/example_xpto/expected/lir_06_const_prop.txt +13 -0
- data/golden/example_xpto/expected/nast.txt +17 -0
- data/golden/example_xpto/expected/schema_javascript.mjs +13 -0
- data/golden/example_xpto/expected/schema_ruby.rb +13 -0
- data/golden/example_xpto/expected/snast.txt +17 -0
- data/golden/example_xpto/expected.json +4 -0
- data/golden/example_xpto/input.json +3 -0
- data/golden/example_xpto/schema.kumi +8 -0
- data/golden/function_overload/expected/schema_ruby.rb +2 -27
- data/golden/game_of_life/expected/lir_06_const_prop.txt +236 -287
- data/golden/game_of_life/expected/schema_javascript.mjs +32 -39
- data/golden/game_of_life/expected/schema_ruby.rb +34 -66
- data/golden/hash_keys/expected/lir_06_const_prop.txt +4 -10
- data/golden/hash_keys/expected/schema_javascript.mjs +6 -12
- data/golden/hash_keys/expected/schema_ruby.rb +8 -39
- data/golden/hash_value/expected/lir_06_const_prop.txt +3 -6
- data/golden/hash_value/expected/schema_javascript.mjs +3 -6
- data/golden/hash_value/expected/schema_ruby.rb +7 -37
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +9 -18
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +9 -18
- data/golden/hierarchical_complex/expected/schema_ruby.rb +14 -51
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +7 -39
- data/golden/input_reference/expected/schema_ruby.rb +6 -35
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +6 -14
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +6 -14
- data/golden/interleaved_fusion/expected/schema_ruby.rb +11 -47
- data/golden/let_inline/expected/lir_06_const_prop.txt +1 -2
- data/golden/let_inline/expected/schema_javascript.mjs +1 -2
- data/golden/let_inline/expected/schema_ruby.rb +3 -29
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +4 -10
- data/golden/loop_fusion/expected/schema_javascript.mjs +4 -10
- data/golden/loop_fusion/expected/schema_ruby.rb +8 -41
- data/golden/min_reduce_scope/expected/lir_06_const_prop.txt +3 -6
- data/golden/min_reduce_scope/expected/schema_javascript.mjs +3 -6
- data/golden/min_reduce_scope/expected/schema_ruby.rb +8 -39
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +1 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +1 -2
- data/golden/mixed_dimensions/expected/schema_ruby.rb +5 -33
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +9 -18
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +9 -18
- data/golden/multirank_hoisting/expected/schema_ruby.rb +16 -55
- data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -2
- data/golden/nested_hash/expected/schema_javascript.mjs +1 -2
- data/golden/nested_hash/expected/schema_ruby.rb +3 -29
- data/golden/reduction_broadcast/expected/schema_ruby.rb +5 -33
- data/golden/roll/expected/lir_06_const_prop.txt +8 -15
- data/golden/roll/expected/schema_javascript.mjs +8 -15
- data/golden/roll/expected/schema_ruby.rb +13 -48
- data/golden/schema_imports_broadcasting_with_imports/expected/ast.txt +26 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/input_plan.txt +5 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_00_unoptimized.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_01_hoist_scalar_references.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_02_inlined.txt +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_03_cse.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_1_loop_fusion.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_loop_invcm.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_06_const_prop.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/nast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_javascript.mjs +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_ruby.rb +24 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/snast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected.json +4 -0
- data/golden/schema_imports_broadcasting_with_imports/input.json +7 -0
- data/golden/schema_imports_broadcasting_with_imports/schema.kumi +14 -0
- data/golden/schema_imports_complex_order_calc/expected/ast.txt +82 -0
- data/golden/schema_imports_complex_order_calc/expected/input_plan.txt +16 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_00_unoptimized.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_01_hoist_scalar_references.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_02_inlined.txt +187 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_03_cse.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_1_loop_fusion.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_loop_invcm.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_06_const_prop.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/nast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_javascript.mjs +147 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_ruby.rb +149 -0
- data/golden/schema_imports_complex_order_calc/expected/snast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected.json +12 -0
- data/golden/schema_imports_complex_order_calc/input.json +20 -0
- data/golden/schema_imports_complex_order_calc/schema.kumi +33 -0
- data/golden/schema_imports_composed_order/expected/ast.txt +33 -0
- data/golden/schema_imports_composed_order/expected/input_plan.txt +3 -0
- data/golden/schema_imports_composed_order/expected/lir_00_unoptimized.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_01_hoist_scalar_references.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_02_inlined.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_03_cse.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_1_loop_fusion.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_loop_invcm.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_06_const_prop.txt +33 -0
- data/golden/schema_imports_composed_order/expected/nast.txt +25 -0
- data/golden/schema_imports_composed_order/expected/schema_javascript.mjs +35 -0
- data/golden/schema_imports_composed_order/expected/schema_ruby.rb +33 -0
- data/golden/schema_imports_composed_order/expected/snast.txt +25 -0
- data/golden/schema_imports_composed_order/expected.json +6 -0
- data/golden/schema_imports_composed_order/input.json +5 -0
- data/golden/schema_imports_composed_order/schema.kumi +15 -0
- data/golden/schema_imports_discount_with_tax/expected/ast.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/input_plan.txt +2 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_00_unoptimized.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_01_hoist_scalar_references.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_02_inlined.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_03_cse.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_1_loop_fusion.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_loop_invcm.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_06_const_prop.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/nast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_javascript.mjs +37 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_ruby.rb +34 -0
- data/golden/schema_imports_discount_with_tax/expected/snast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected.json +7 -0
- data/golden/schema_imports_discount_with_tax/input.json +4 -0
- data/golden/schema_imports_discount_with_tax/schema.kumi +15 -0
- data/golden/schema_imports_line_items/expected/ast.txt +35 -0
- data/golden/schema_imports_line_items/expected/input_plan.txt +8 -0
- data/golden/schema_imports_line_items/expected/lir_00_unoptimized.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_01_hoist_scalar_references.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_02_inlined.txt +24 -0
- data/golden/schema_imports_line_items/expected/lir_03_cse.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_1_loop_fusion.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_loop_invcm.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_06_const_prop.txt +22 -0
- data/golden/schema_imports_line_items/expected/nast.txt +19 -0
- data/golden/schema_imports_line_items/expected/schema_javascript.mjs +23 -0
- data/golden/schema_imports_line_items/expected/schema_ruby.rb +22 -0
- data/golden/schema_imports_line_items/expected/snast.txt +19 -0
- data/golden/schema_imports_line_items/expected.json +5 -0
- data/golden/schema_imports_line_items/input.json +13 -0
- data/golden/schema_imports_line_items/schema.kumi +17 -0
- data/golden/schema_imports_multiple/expected/ast.txt +35 -0
- data/golden/schema_imports_multiple/expected/input_plan.txt +2 -0
- data/golden/schema_imports_multiple/expected/lir_00_unoptimized.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_01_hoist_scalar_references.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_02_inlined.txt +41 -0
- data/golden/schema_imports_multiple/expected/lir_03_cse.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_1_loop_fusion.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_loop_invcm.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_06_const_prop.txt +37 -0
- data/golden/schema_imports_multiple/expected/nast.txt +28 -0
- data/golden/schema_imports_multiple/expected/schema_javascript.mjs +40 -0
- data/golden/schema_imports_multiple/expected/schema_ruby.rb +37 -0
- data/golden/schema_imports_multiple/expected/snast.txt +28 -0
- data/golden/schema_imports_multiple/expected.json +7 -0
- data/golden/schema_imports_multiple/input.json +4 -0
- data/golden/schema_imports_multiple/schema.kumi +15 -0
- data/golden/schema_imports_nested_expressions/expected/ast.txt +31 -0
- data/golden/schema_imports_nested_expressions/expected/input_plan.txt +3 -0
- data/golden/schema_imports_nested_expressions/expected/lir_00_unoptimized.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_01_hoist_scalar_references.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_02_inlined.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_03_cse.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_1_loop_fusion.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_loop_invcm.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_06_const_prop.txt +28 -0
- data/golden/schema_imports_nested_expressions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected/schema_javascript.mjs +29 -0
- data/golden/schema_imports_nested_expressions/expected/schema_ruby.rb +28 -0
- data/golden/schema_imports_nested_expressions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected.json +5 -0
- data/golden/schema_imports_nested_expressions/input.json +5 -0
- data/golden/schema_imports_nested_expressions/schema.kumi +13 -0
- data/golden/schema_imports_nested_with_reductions/expected/ast.txt +47 -0
- data/golden/schema_imports_nested_with_reductions/expected/input_plan.txt +12 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_00_unoptimized.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_01_hoist_scalar_references.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_02_inlined.txt +58 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_03_cse.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_1_loop_fusion.txt +51 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_06_const_prop.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_javascript.mjs +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_ruby.rb +52 -0
- data/golden/schema_imports_nested_with_reductions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected.json +6 -0
- data/golden/schema_imports_nested_with_reductions/input.json +16 -0
- data/golden/schema_imports_nested_with_reductions/schema.kumi +23 -0
- data/golden/schema_imports_with_imports/expected/ast.txt +19 -0
- data/golden/schema_imports_with_imports/expected/input_plan.txt +1 -0
- data/golden/schema_imports_with_imports/expected/lir_00_unoptimized.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_01_hoist_scalar_references.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_02_inlined.txt +14 -0
- data/golden/schema_imports_with_imports/expected/lir_03_cse.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_1_loop_fusion.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_loop_invcm.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_06_const_prop.txt +13 -0
- data/golden/schema_imports_with_imports/expected/nast.txt +13 -0
- data/golden/schema_imports_with_imports/expected/schema_javascript.mjs +13 -0
- data/golden/schema_imports_with_imports/expected/schema_ruby.rb +13 -0
- data/golden/schema_imports_with_imports/expected/snast.txt +13 -0
- data/golden/schema_imports_with_imports/expected.json +4 -0
- data/golden/schema_imports_with_imports/input.json +3 -0
- data/golden/schema_imports_with_imports/schema.kumi +10 -0
- data/golden/shift/expected/lir_06_const_prop.txt +18 -30
- data/golden/shift/expected/schema_javascript.mjs +18 -30
- data/golden/shift/expected/schema_ruby.rb +25 -67
- data/golden/shift_2d/expected/lir_06_const_prop.txt +36 -60
- data/golden/shift_2d/expected/schema_javascript.mjs +36 -60
- data/golden/shift_2d/expected/schema_ruby.rb +49 -109
- data/golden/simple_math/expected/lir_06_const_prop.txt +3 -6
- data/golden/simple_math/expected/schema_javascript.mjs +3 -6
- data/golden/simple_math/expected/schema_ruby.rb +8 -39
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +6 -12
- data/golden/streaming_basics/expected/schema_javascript.mjs +6 -12
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -51
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -22
- data/golden/tuples/expected/schema_javascript.mjs +5 -22
- data/golden/tuples/expected/schema_ruby.rb +11 -57
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +4 -8
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +4 -8
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +9 -41
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +94 -171
- data/golden/us_tax_2024/expected/schema_javascript.mjs +13 -21
- data/golden/us_tax_2024/expected/schema_ruby.rb +15 -48
- data/golden/with_constants/expected/lir_06_const_prop.txt +3 -8
- data/golden/with_constants/expected/schema_javascript.mjs +3 -8
- data/golden/with_constants/expected/schema_ruby.rb +5 -35
- data/lib/kumi/analyzer.rb +8 -7
- data/lib/kumi/configuration.rb +7 -6
- data/lib/kumi/core/analyzer/passes/attach_anchors_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/attach_terminal_info_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/codegen/js/declaration_emitter.rb +20 -0
- data/lib/kumi/core/analyzer/passes/codegen/ruby/declaration_emitter.rb +16 -7
- data/lib/kumi/core/analyzer/passes/codegen/ruby/output_buffer.rb +3 -35
- data/lib/kumi/core/analyzer/passes/dependency_resolver.rb +6 -0
- data/lib/kumi/core/analyzer/passes/import_analysis_pass.rb +90 -0
- data/lib/kumi/core/analyzer/passes/lir/constant_propagation_pass.rb +77 -36
- data/lib/kumi/core/analyzer/passes/lir/lower_pass.rb +26 -11
- data/lib/kumi/core/analyzer/passes/name_indexer.rb +20 -2
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +44 -0
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +30 -0
- data/lib/kumi/core/analyzer/passes/semantic_constraint_validator.rb +5 -1
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +15 -0
- data/lib/kumi/core/lir/build.rb +27 -0
- data/lib/kumi/core/lir/peephole.rb +164 -0
- data/lib/kumi/core/nast.rb +16 -0
- data/lib/kumi/core/ruby_parser/build_context.rb +3 -1
- data/lib/kumi/core/ruby_parser/parser.rb +1 -1
- data/lib/kumi/core/ruby_parser/schema_builder.rb +33 -3
- data/lib/kumi/dev/golden/result.rb +9 -3
- data/lib/kumi/dev/golden/runtime_test.rb +16 -1
- data/lib/kumi/dev/golden.rb +18 -20
- data/lib/kumi/dev/golden_schema_modules.rb +8 -0
- data/lib/kumi/dev/golden_schema_wrapper.rb +116 -0
- data/lib/kumi/dev/support/kumi_runner.mjs +18 -0
- data/lib/kumi/schema.rb +44 -2
- data/lib/kumi/support/lir_printer.rb +21 -5
- data/lib/kumi/support/nast_printer.rb +11 -0
- data/lib/kumi/support/s_expression_printer.rb +9 -0
- data/lib/kumi/support/snast_printer.rb +6 -0
- data/lib/kumi/syntax/import_call.rb +11 -0
- data/lib/kumi/syntax/import_declaration.rb +11 -0
- data/lib/kumi/syntax/root.rb +2 -2
- data/lib/kumi/test_shared_schemas/compound.rb +21 -0
- data/lib/kumi/test_shared_schemas/discount.rb +19 -0
- data/lib/kumi/test_shared_schemas/price.rb +19 -0
- data/lib/kumi/test_shared_schemas/subtotal.rb +22 -0
- data/lib/kumi/test_shared_schemas/tax.rb +18 -0
- data/lib/kumi/version.rb +1 -1
- data/lib/kumi.rb +19 -4
- metadata +176 -3
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export function _high_performer(input) {
|
|
2
2
|
let out = [];
|
|
3
3
|
let t1 = input["regions"];
|
|
4
|
-
const t14 = 4.5;
|
|
5
4
|
t1.forEach((regions_el_2, regions_i_3) => {
|
|
6
5
|
let out_1 = [];
|
|
7
6
|
let t4 = regions_el_2["offices"];
|
|
@@ -13,7 +12,7 @@ export function _high_performer(input) {
|
|
|
13
12
|
let t10 = teams_el_8["employees"];
|
|
14
13
|
t10.forEach((employees_el_11, employees_i_12) => {
|
|
15
14
|
let t13 = employees_el_11["rating"];
|
|
16
|
-
let t15 = t13 >=
|
|
15
|
+
let t15 = t13 >= 4.5;
|
|
17
16
|
out_3.push(t15);
|
|
18
17
|
});
|
|
19
18
|
out_2.push(out_3);
|
|
@@ -28,7 +27,6 @@ export function _high_performer(input) {
|
|
|
28
27
|
export function _senior_level(input) {
|
|
29
28
|
let out = [];
|
|
30
29
|
let t16 = input["regions"];
|
|
31
|
-
const t29 = "senior";
|
|
32
30
|
t16.forEach((regions_el_17, regions_i_18) => {
|
|
33
31
|
let out_1 = [];
|
|
34
32
|
let t19 = regions_el_17["offices"];
|
|
@@ -40,7 +38,7 @@ export function _senior_level(input) {
|
|
|
40
38
|
let t25 = teams_el_23["employees"];
|
|
41
39
|
t25.forEach((employees_el_26, employees_i_27) => {
|
|
42
40
|
let t28 = employees_el_26["level"];
|
|
43
|
-
let t30 = t28 ==
|
|
41
|
+
let t30 = t28 == "senior";
|
|
44
42
|
out_3.push(t30);
|
|
45
43
|
});
|
|
46
44
|
out_2.push(out_3);
|
|
@@ -55,7 +53,6 @@ export function _senior_level(input) {
|
|
|
55
53
|
export function _top_team(input) {
|
|
56
54
|
let out = [];
|
|
57
55
|
let t31 = input["regions"];
|
|
58
|
-
const t41 = 0.9;
|
|
59
56
|
t31.forEach((regions_el_32, regions_i_33) => {
|
|
60
57
|
let out_1 = [];
|
|
61
58
|
let t34 = regions_el_32["offices"];
|
|
@@ -64,7 +61,7 @@ export function _top_team(input) {
|
|
|
64
61
|
let t37 = offices_el_35["teams"];
|
|
65
62
|
t37.forEach((teams_el_38, teams_i_39) => {
|
|
66
63
|
let t40 = teams_el_38["performance_score"];
|
|
67
|
-
let t42 = t40 >=
|
|
64
|
+
let t42 = t40 >= 0.9;
|
|
68
65
|
out_2.push(t42);
|
|
69
66
|
});
|
|
70
67
|
out_1.push(out_2);
|
|
@@ -77,12 +74,6 @@ export function _top_team(input) {
|
|
|
77
74
|
export function _employee_bonus(input) {
|
|
78
75
|
let out = [];
|
|
79
76
|
let t43 = input["regions"];
|
|
80
|
-
const t92 = 0.9;
|
|
81
|
-
const t79 = 4.5;
|
|
82
|
-
const t86 = "senior";
|
|
83
|
-
const t61 = 0.3;
|
|
84
|
-
const t67 = 0.2;
|
|
85
|
-
const t70 = 0.05;
|
|
86
77
|
t43.forEach((regions_el_44, regions_i_45) => {
|
|
87
78
|
let out_1 = [];
|
|
88
79
|
let t46 = regions_el_44["offices"];
|
|
@@ -92,20 +83,20 @@ export function _employee_bonus(input) {
|
|
|
92
83
|
t49.forEach((teams_el_50, teams_i_51) => {
|
|
93
84
|
let out_3 = [];
|
|
94
85
|
let t91 = teams_el_50["performance_score"];
|
|
95
|
-
let t93 = t91 >=
|
|
86
|
+
let t93 = t91 >= 0.9;
|
|
96
87
|
let t52 = teams_el_50["employees"];
|
|
97
88
|
t52.forEach((employees_el_53, employees_i_54) => {
|
|
98
89
|
let t78 = employees_el_53["rating"];
|
|
99
|
-
let t80 = t78 >=
|
|
90
|
+
let t80 = t78 >= 4.5;
|
|
100
91
|
let t85 = employees_el_53["level"];
|
|
101
|
-
let t87 = t85 ==
|
|
92
|
+
let t87 = t85 == "senior";
|
|
102
93
|
let t58 = t87 && t93;
|
|
103
94
|
let t59 = t80 && t58;
|
|
104
95
|
let t60 = employees_el_53["salary"];
|
|
105
|
-
let t62 = t60 *
|
|
96
|
+
let t62 = t60 * 0.3;
|
|
106
97
|
let t65 = t80 && t93;
|
|
107
|
-
let t68 = t60 *
|
|
108
|
-
let t71 = t60 *
|
|
98
|
+
let t68 = t60 * 0.2;
|
|
99
|
+
let t71 = t60 * 0.05;
|
|
109
100
|
let t72 = t65 ? t68 : t71;
|
|
110
101
|
let t73 = t59 ? t62 : t72;
|
|
111
102
|
out_3.push(t73);
|
|
@@ -1,37 +1,8 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
4
|
-
instance = Object.new
|
|
5
|
-
instance.extend(self)
|
|
6
|
-
instance.instance_variable_set(:@input, input_data)
|
|
7
|
-
instance
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def self.__kumi_executable__
|
|
11
|
-
instance = Object.new
|
|
12
|
-
instance.extend(self)
|
|
13
|
-
instance
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def update(input_data)
|
|
17
|
-
@input = @input.merge(input_data)
|
|
18
|
-
self
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def [](name)
|
|
22
|
-
case name
|
|
23
|
-
when :high_performer then _high_performer
|
|
24
|
-
when :senior_level then _senior_level
|
|
25
|
-
when :top_team then _top_team
|
|
26
|
-
when :employee_bonus then _employee_bonus
|
|
27
|
-
else raise KeyError, "Unknown declaration"
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def _high_performer(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_b4a999bc336fd010ad9dfd6850c0ff7524073440568a014d8c6d492210d63608
|
|
3
|
+
def self._high_performer(input)
|
|
32
4
|
out = []
|
|
33
5
|
t1 = input["regions"] || input[:regions]
|
|
34
|
-
t14 = 4.5
|
|
35
6
|
t1.each_with_index do |regions_el_2, regions_i_3|
|
|
36
7
|
out_1 = []
|
|
37
8
|
t4 = regions_el_2["offices"] || regions_el_2[:offices]
|
|
@@ -43,7 +14,7 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
43
14
|
t10 = teams_el_8["employees"] || teams_el_8[:employees]
|
|
44
15
|
t10.each_with_index do |employees_el_11, employees_i_12|
|
|
45
16
|
t13 = employees_el_11["rating"] || employees_el_11[:rating]
|
|
46
|
-
t15 = t13 >=
|
|
17
|
+
t15 = t13 >= 4.5
|
|
47
18
|
out_3 << t15
|
|
48
19
|
end
|
|
49
20
|
out_2 << out_3
|
|
@@ -55,10 +26,9 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
55
26
|
out
|
|
56
27
|
end
|
|
57
28
|
|
|
58
|
-
def _senior_level(input
|
|
29
|
+
def self._senior_level(input)
|
|
59
30
|
out = []
|
|
60
31
|
t16 = input["regions"] || input[:regions]
|
|
61
|
-
t29 = "senior"
|
|
62
32
|
t16.each_with_index do |regions_el_17, regions_i_18|
|
|
63
33
|
out_1 = []
|
|
64
34
|
t19 = regions_el_17["offices"] || regions_el_17[:offices]
|
|
@@ -70,7 +40,7 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
70
40
|
t25 = teams_el_23["employees"] || teams_el_23[:employees]
|
|
71
41
|
t25.each_with_index do |employees_el_26, employees_i_27|
|
|
72
42
|
t28 = employees_el_26["level"] || employees_el_26[:level]
|
|
73
|
-
t30 = t28 ==
|
|
43
|
+
t30 = t28 == "senior"
|
|
74
44
|
out_3 << t30
|
|
75
45
|
end
|
|
76
46
|
out_2 << out_3
|
|
@@ -82,10 +52,9 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
82
52
|
out
|
|
83
53
|
end
|
|
84
54
|
|
|
85
|
-
def _top_team(input
|
|
55
|
+
def self._top_team(input)
|
|
86
56
|
out = []
|
|
87
57
|
t31 = input["regions"] || input[:regions]
|
|
88
|
-
t41 = 0.9
|
|
89
58
|
t31.each_with_index do |regions_el_32, regions_i_33|
|
|
90
59
|
out_1 = []
|
|
91
60
|
t34 = regions_el_32["offices"] || regions_el_32[:offices]
|
|
@@ -94,7 +63,7 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
94
63
|
t37 = offices_el_35["teams"] || offices_el_35[:teams]
|
|
95
64
|
t37.each_with_index do |teams_el_38, teams_i_39|
|
|
96
65
|
t40 = teams_el_38["performance_score"] || teams_el_38[:performance_score]
|
|
97
|
-
t42 = t40 >=
|
|
66
|
+
t42 = t40 >= 0.9
|
|
98
67
|
out_2 << t42
|
|
99
68
|
end
|
|
100
69
|
out_1 << out_2
|
|
@@ -104,15 +73,9 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
104
73
|
out
|
|
105
74
|
end
|
|
106
75
|
|
|
107
|
-
def _employee_bonus(input
|
|
76
|
+
def self._employee_bonus(input)
|
|
108
77
|
out = []
|
|
109
78
|
t43 = input["regions"] || input[:regions]
|
|
110
|
-
t92 = 0.9
|
|
111
|
-
t79 = 4.5
|
|
112
|
-
t86 = "senior"
|
|
113
|
-
t61 = 0.3
|
|
114
|
-
t67 = 0.2
|
|
115
|
-
t70 = 0.05
|
|
116
79
|
t43.each_with_index do |regions_el_44, regions_i_45|
|
|
117
80
|
out_1 = []
|
|
118
81
|
t46 = regions_el_44["offices"] || regions_el_44[:offices]
|
|
@@ -122,20 +85,20 @@ module Kumi::Compiled::KUMI_8ec94ceea868d100e7236c5727a53dd266057cbfa5edb5c01dfc
|
|
|
122
85
|
t49.each_with_index do |teams_el_50, teams_i_51|
|
|
123
86
|
out_3 = []
|
|
124
87
|
t91 = teams_el_50["performance_score"] || teams_el_50[:performance_score]
|
|
125
|
-
t93 = t91 >=
|
|
88
|
+
t93 = t91 >= 0.9
|
|
126
89
|
t52 = teams_el_50["employees"] || teams_el_50[:employees]
|
|
127
90
|
t52.each_with_index do |employees_el_53, employees_i_54|
|
|
128
91
|
t78 = employees_el_53["rating"] || employees_el_53[:rating]
|
|
129
|
-
t80 = t78 >=
|
|
92
|
+
t80 = t78 >= 4.5
|
|
130
93
|
t85 = employees_el_53["level"] || employees_el_53[:level]
|
|
131
|
-
t87 = t85 ==
|
|
94
|
+
t87 = t85 == "senior"
|
|
132
95
|
t58 = t87 && t93
|
|
133
96
|
t59 = t80 && t58
|
|
134
97
|
t60 = employees_el_53["salary"] || employees_el_53[:salary]
|
|
135
|
-
t62 = t60 *
|
|
98
|
+
t62 = t60 * 0.3
|
|
136
99
|
t65 = t80 && t93
|
|
137
|
-
t68 = t60 *
|
|
138
|
-
t71 = t60 *
|
|
100
|
+
t68 = t60 * 0.2
|
|
101
|
+
t71 = t60 * 0.05
|
|
139
102
|
t72 = t65 ? t68 : t71
|
|
140
103
|
t73 = t59 ? t62 : t72
|
|
141
104
|
out_3 << t73
|
|
@@ -20,9 +20,7 @@
|
|
|
20
20
|
yield %t12
|
|
21
21
|
)
|
|
22
22
|
(Declaration tail
|
|
23
|
-
%
|
|
24
|
-
%t14 = const 5.0 :: float
|
|
25
|
-
%t15 = call core.add(%t13, %t14) :: float
|
|
23
|
+
%t15 = call core.add(7.0, 5.0) :: float
|
|
26
24
|
yield %t15
|
|
27
25
|
)
|
|
28
26
|
(Declaration out
|
|
@@ -40,9 +38,7 @@
|
|
|
40
38
|
%acc28 = acc_add agg.sum(%acc28, %t32) :: float
|
|
41
39
|
end_loop
|
|
42
40
|
%t33 = acc_load %acc28 :: float
|
|
43
|
-
%
|
|
44
|
-
%t35 = const 5.0 :: float
|
|
45
|
-
%t36 = call core.add(%t34, %t35) :: float
|
|
41
|
+
%t36 = call core.add(7.0, 5.0) :: float
|
|
46
42
|
%t19 = make_object{x: %t26, y: %t33, t: %t36} :: object
|
|
47
43
|
yield %t19
|
|
48
44
|
)
|
|
@@ -19,9 +19,7 @@ export function _sum_y(input) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export function _tail(input) {
|
|
22
|
-
|
|
23
|
-
const t14 = 5.0;
|
|
24
|
-
let t15 = t13 + t14;
|
|
22
|
+
let t15 = 7.0 + 5.0;
|
|
25
23
|
return t15;
|
|
26
24
|
}
|
|
27
25
|
|
|
@@ -38,9 +36,7 @@ export function _out(input) {
|
|
|
38
36
|
let t32 = t30["v"];
|
|
39
37
|
acc28 += t32;
|
|
40
38
|
});
|
|
41
|
-
|
|
42
|
-
const t35 = 5.0;
|
|
43
|
-
let t36 = t34 + t35;
|
|
39
|
+
let t36 = 7.0 + 5.0;
|
|
44
40
|
let t19 = {
|
|
45
41
|
"x": acc21,
|
|
46
42
|
"y": acc28,
|
|
@@ -1,34 +1,6 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
4
|
-
instance = Object.new
|
|
5
|
-
instance.extend(self)
|
|
6
|
-
instance.instance_variable_set(:@input, input_data)
|
|
7
|
-
instance
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def self.__kumi_executable__
|
|
11
|
-
instance = Object.new
|
|
12
|
-
instance.extend(self)
|
|
13
|
-
instance
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def update(input_data)
|
|
17
|
-
@input = @input.merge(input_data)
|
|
18
|
-
self
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def [](name)
|
|
22
|
-
case name
|
|
23
|
-
when :sum_x then _sum_x
|
|
24
|
-
when :sum_y then _sum_y
|
|
25
|
-
when :tail then _tail
|
|
26
|
-
when :out then _out
|
|
27
|
-
else raise KeyError, "Unknown declaration"
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def _sum_x(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_c643a8d29b9013c6ecdf24ce0c4387db0982df57327c97bd1b05a3a8b2993b91
|
|
3
|
+
def self._sum_x(input)
|
|
32
4
|
acc_1 = 0.0
|
|
33
5
|
t2 = input["xs"] || input[:xs]
|
|
34
6
|
t2.each_with_index do |xs_el_3, xs_i_4|
|
|
@@ -38,7 +10,7 @@ module Kumi::Compiled::KUMI_e896af406023cdb9bef06f70f0dd300b87ca6f23151bc9f9f5b6
|
|
|
38
10
|
acc_1
|
|
39
11
|
end
|
|
40
12
|
|
|
41
|
-
def _sum_y(input
|
|
13
|
+
def self._sum_y(input)
|
|
42
14
|
acc_7 = 0.0
|
|
43
15
|
t8 = input["ys"] || input[:ys]
|
|
44
16
|
t8.each_with_index do |ys_el_9, ys_i_10|
|
|
@@ -48,13 +20,11 @@ module Kumi::Compiled::KUMI_e896af406023cdb9bef06f70f0dd300b87ca6f23151bc9f9f5b6
|
|
|
48
20
|
acc_7
|
|
49
21
|
end
|
|
50
22
|
|
|
51
|
-
def _tail(input
|
|
52
|
-
|
|
53
|
-
t14 = 5.0
|
|
54
|
-
t13 + t14
|
|
23
|
+
def self._tail(input)
|
|
24
|
+
7.0 + 5.0
|
|
55
25
|
end
|
|
56
26
|
|
|
57
|
-
def _out(input
|
|
27
|
+
def self._out(input)
|
|
58
28
|
acc21 = 0.0
|
|
59
29
|
t22 = input["xs"] || input[:xs]
|
|
60
30
|
t22.each_with_index do |t23, t24|
|
|
@@ -69,9 +39,7 @@ module Kumi::Compiled::KUMI_e896af406023cdb9bef06f70f0dd300b87ca6f23151bc9f9f5b6
|
|
|
69
39
|
acc28 += t32
|
|
70
40
|
end
|
|
71
41
|
t33 = acc28
|
|
72
|
-
|
|
73
|
-
t35 = 5.0
|
|
74
|
-
t36 = t34 + t35
|
|
42
|
+
t36 = 7.0 + 5.0
|
|
75
43
|
t19 = {
|
|
76
44
|
"x" => t26,
|
|
77
45
|
"y" => t33,
|
|
@@ -1,40 +1,11 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
4
|
-
instance = Object.new
|
|
5
|
-
instance.extend(self)
|
|
6
|
-
instance.instance_variable_set(:@input, input_data)
|
|
7
|
-
instance
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def self.__kumi_executable__
|
|
11
|
-
instance = Object.new
|
|
12
|
-
instance.extend(self)
|
|
13
|
-
instance
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def update(input_data)
|
|
17
|
-
@input = @input.merge(input_data)
|
|
18
|
-
self
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def [](name)
|
|
22
|
-
case name
|
|
23
|
-
when :app_name then _app_name
|
|
24
|
-
when :all_flags then _all_flags
|
|
25
|
-
when :server_hostnames then _server_hostnames
|
|
26
|
-
when :server_count then _server_count
|
|
27
|
-
when :total_ports then _total_ports
|
|
28
|
-
else raise KeyError, "Unknown declaration"
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def _app_name(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_48050e64f006a3402733461d279c22eaf921d1d00c06a20af060b9f90c6ec8d2
|
|
3
|
+
def self._app_name(input)
|
|
33
4
|
t1 = input["config"] || input[:config]
|
|
34
5
|
t1["app_name"] || t1[:app_name]
|
|
35
6
|
end
|
|
36
7
|
|
|
37
|
-
def _all_flags(input
|
|
8
|
+
def self._all_flags(input)
|
|
38
9
|
out = []
|
|
39
10
|
t3 = input["config"] || input[:config]
|
|
40
11
|
t4 = t3["feature_flags"] || t3[:feature_flags]
|
|
@@ -44,7 +15,7 @@ module Kumi::Compiled::KUMI_e5a63c0ea318c059da2823266d32fe23fa0da1f4b7a7ea14ee37
|
|
|
44
15
|
out
|
|
45
16
|
end
|
|
46
17
|
|
|
47
|
-
def _server_hostnames(input
|
|
18
|
+
def self._server_hostnames(input)
|
|
48
19
|
out = []
|
|
49
20
|
t7 = input["config"] || input[:config]
|
|
50
21
|
t8 = t7["servers"] || t7[:servers]
|
|
@@ -55,13 +26,13 @@ module Kumi::Compiled::KUMI_e5a63c0ea318c059da2823266d32fe23fa0da1f4b7a7ea14ee37
|
|
|
55
26
|
out
|
|
56
27
|
end
|
|
57
28
|
|
|
58
|
-
def _server_count(input
|
|
29
|
+
def self._server_count(input)
|
|
59
30
|
t12 = input["config"] || input[:config]
|
|
60
31
|
t13 = t12["servers"] || t12[:servers]
|
|
61
32
|
t13.length
|
|
62
33
|
end
|
|
63
34
|
|
|
64
|
-
def _total_ports(input
|
|
35
|
+
def self._total_ports(input)
|
|
65
36
|
acc_15 = 0
|
|
66
37
|
t16 = input["config"] || input[:config]
|
|
67
38
|
t17 = t16["servers"] || t16[:servers]
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
)
|
|
15
15
|
(Declaration payroll_tax
|
|
16
16
|
%t10 = load_input "departments" :: array
|
|
17
|
-
%t14 = const 0.15 :: float
|
|
18
17
|
loop departments id=L3 in %t10 as el=%departments_el_11, idx=%departments_i_12
|
|
19
18
|
%acc40 = decl_acc :: integer
|
|
20
19
|
%t41 = load_field departments_el_11["employees"] :: any
|
|
@@ -23,22 +22,19 @@
|
|
|
23
22
|
%acc40 = acc_add agg.sum(%acc40, %t44) :: integer
|
|
24
23
|
end_loop
|
|
25
24
|
%t45 = acc_load %acc40 :: integer
|
|
26
|
-
%t15 = call core.mul:numeric(%t45,
|
|
25
|
+
%t15 = call core.mul:numeric(%t45, 0.15) :: float
|
|
27
26
|
yield %t15
|
|
28
27
|
end_loop
|
|
29
28
|
)
|
|
30
29
|
(Declaration manager_count
|
|
31
30
|
%t16 = load_input "departments" :: array
|
|
32
|
-
%t24 = const "manager" :: string
|
|
33
|
-
%t26 = const 1 :: integer
|
|
34
|
-
%t27 = const 0 :: integer
|
|
35
31
|
loop departments id=L4 in %t16 as el=%departments_el_17, idx=%departments_i_18
|
|
36
32
|
%acc_19 = decl_acc :: integer
|
|
37
33
|
%t20 = load_field departments_el_17["employees"] :: any
|
|
38
34
|
loop employees id=L5 in %t20 as el=%employees_el_21, idx=%employees_i_22
|
|
39
35
|
%t23 = load_field employees_el_21["role"] :: string
|
|
40
|
-
%t25 = call core.eq(%t23,
|
|
41
|
-
%t28 = select %t25,
|
|
36
|
+
%t25 = call core.eq(%t23, "manager") :: boolean
|
|
37
|
+
%t28 = select %t25, 1, 0 :: integer
|
|
42
38
|
%acc_19 = acc_add agg.sum(%acc_19, %t28) :: integer
|
|
43
39
|
end_loop
|
|
44
40
|
%t29 = acc_load %acc_19 :: integer
|
|
@@ -47,10 +43,6 @@
|
|
|
47
43
|
)
|
|
48
44
|
(Declaration department_summary
|
|
49
45
|
%t30 = load_input "departments" :: array
|
|
50
|
-
%t56 = const 0.15 :: float
|
|
51
|
-
%t73 = const "manager" :: string
|
|
52
|
-
%t75 = const 1 :: integer
|
|
53
|
-
%t76 = const 0 :: integer
|
|
54
46
|
loop departments id=L6 in %t30 as el=%departments_el_31, idx=%departments_i_32
|
|
55
47
|
%t33 = load_field departments_el_31["name"] :: string
|
|
56
48
|
%acc48 = decl_acc :: integer
|
|
@@ -62,14 +54,14 @@
|
|
|
62
54
|
%acc48 = acc_add agg.sum(%acc48, %t52) :: integer
|
|
63
55
|
%acc60 = acc_add agg.sum(%acc60, %t52) :: integer
|
|
64
56
|
%t72 = load_field t50["role"] :: string
|
|
65
|
-
%t74 = call core.eq(%t72,
|
|
66
|
-
%t77 = select %t74,
|
|
57
|
+
%t74 = call core.eq(%t72, "manager") :: boolean
|
|
58
|
+
%t77 = select %t74, 1, 0 :: integer
|
|
67
59
|
%acc68 = acc_add agg.sum(%acc68, %t77) :: integer
|
|
68
60
|
end_loop
|
|
69
61
|
%t53 = acc_load %acc48 :: integer
|
|
70
62
|
%t65 = acc_load %acc60 :: integer
|
|
71
63
|
%t78 = acc_load %acc68 :: integer
|
|
72
|
-
%t57 = call core.mul:numeric(%t65,
|
|
64
|
+
%t57 = call core.mul:numeric(%t65, 0.15) :: float
|
|
73
65
|
%t37 = make_object{name: %t33, payroll: %t53, tax: %t57, managers: %t78} :: object
|
|
74
66
|
yield %t37
|
|
75
67
|
end_loop
|
|
@@ -16,7 +16,6 @@ export function _total_payroll(input) {
|
|
|
16
16
|
export function _payroll_tax(input) {
|
|
17
17
|
let out = [];
|
|
18
18
|
let t10 = input["departments"];
|
|
19
|
-
const t14 = 0.15;
|
|
20
19
|
t10.forEach((departments_el_11, departments_i_12) => {
|
|
21
20
|
let acc40 = 0;
|
|
22
21
|
let t41 = departments_el_11["employees"];
|
|
@@ -24,7 +23,7 @@ export function _payroll_tax(input) {
|
|
|
24
23
|
let t44 = t42["salary"];
|
|
25
24
|
acc40 += t44;
|
|
26
25
|
});
|
|
27
|
-
let t15 = acc40 *
|
|
26
|
+
let t15 = acc40 * 0.15;
|
|
28
27
|
out.push(t15);
|
|
29
28
|
});
|
|
30
29
|
return out;
|
|
@@ -33,16 +32,13 @@ export function _payroll_tax(input) {
|
|
|
33
32
|
export function _manager_count(input) {
|
|
34
33
|
let out = [];
|
|
35
34
|
let t16 = input["departments"];
|
|
36
|
-
const t24 = "manager";
|
|
37
|
-
const t26 = 1;
|
|
38
|
-
const t27 = 0;
|
|
39
35
|
t16.forEach((departments_el_17, departments_i_18) => {
|
|
40
36
|
let acc_19 = 0;
|
|
41
37
|
let t20 = departments_el_17["employees"];
|
|
42
38
|
t20.forEach((employees_el_21, employees_i_22) => {
|
|
43
39
|
let t23 = employees_el_21["role"];
|
|
44
|
-
let t25 = t23 ==
|
|
45
|
-
let t28 = t25 ?
|
|
40
|
+
let t25 = t23 == "manager";
|
|
41
|
+
let t28 = t25 ? 1 : 0;
|
|
46
42
|
acc_19 += t28;
|
|
47
43
|
});
|
|
48
44
|
out.push(acc_19);
|
|
@@ -53,10 +49,6 @@ export function _manager_count(input) {
|
|
|
53
49
|
export function _department_summary(input) {
|
|
54
50
|
let out = [];
|
|
55
51
|
let t30 = input["departments"];
|
|
56
|
-
const t56 = 0.15;
|
|
57
|
-
const t73 = "manager";
|
|
58
|
-
const t75 = 1;
|
|
59
|
-
const t76 = 0;
|
|
60
52
|
t30.forEach((departments_el_31, departments_i_32) => {
|
|
61
53
|
let t33 = departments_el_31["name"];
|
|
62
54
|
let acc48 = 0;
|
|
@@ -68,11 +60,11 @@ export function _department_summary(input) {
|
|
|
68
60
|
acc48 += t52;
|
|
69
61
|
acc60 += t52;
|
|
70
62
|
let t72 = t50["role"];
|
|
71
|
-
let t74 = t72 ==
|
|
72
|
-
let t77 = t74 ?
|
|
63
|
+
let t74 = t72 == "manager";
|
|
64
|
+
let t77 = t74 ? 1 : 0;
|
|
73
65
|
acc68 += t77;
|
|
74
66
|
});
|
|
75
|
-
let t57 = acc60 *
|
|
67
|
+
let t57 = acc60 * 0.15;
|
|
76
68
|
let t37 = {
|
|
77
69
|
"name": t33,
|
|
78
70
|
"payroll": acc48,
|
|
@@ -1,34 +1,6 @@
|
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
|
2
|
-
module Kumi::Compiled::
|
|
3
|
-
def self.
|
|
4
|
-
instance = Object.new
|
|
5
|
-
instance.extend(self)
|
|
6
|
-
instance.instance_variable_set(:@input, input_data)
|
|
7
|
-
instance
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def self.__kumi_executable__
|
|
11
|
-
instance = Object.new
|
|
12
|
-
instance.extend(self)
|
|
13
|
-
instance
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def update(input_data)
|
|
17
|
-
@input = @input.merge(input_data)
|
|
18
|
-
self
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def [](name)
|
|
22
|
-
case name
|
|
23
|
-
when :total_payroll then _total_payroll
|
|
24
|
-
when :payroll_tax then _payroll_tax
|
|
25
|
-
when :manager_count then _manager_count
|
|
26
|
-
when :department_summary then _department_summary
|
|
27
|
-
else raise KeyError, "Unknown declaration"
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def _total_payroll(input = @input)
|
|
2
|
+
module Kumi::Compiled::KUMI_49c50f95b0a18544a5364cc73e6fc48d0d3047a41b6fcdd5317f0db224080a3c
|
|
3
|
+
def self._total_payroll(input)
|
|
32
4
|
out = []
|
|
33
5
|
t1 = input["departments"] || input[:departments]
|
|
34
6
|
t1.each_with_index do |departments_el_2, departments_i_3|
|
|
@@ -44,10 +16,9 @@ module Kumi::Compiled::KUMI_4323eb829f35622b045d2fd46bf95a877a7a4caa6feea5cfb694
|
|
|
44
16
|
out
|
|
45
17
|
end
|
|
46
18
|
|
|
47
|
-
def _payroll_tax(input
|
|
19
|
+
def self._payroll_tax(input)
|
|
48
20
|
out = []
|
|
49
21
|
t10 = input["departments"] || input[:departments]
|
|
50
|
-
t14 = 0.15
|
|
51
22
|
t10.each_with_index do |departments_el_11, departments_i_12|
|
|
52
23
|
acc40 = 0
|
|
53
24
|
t41 = departments_el_11["employees"] || departments_el_11[:employees]
|
|
@@ -56,25 +27,22 @@ module Kumi::Compiled::KUMI_4323eb829f35622b045d2fd46bf95a877a7a4caa6feea5cfb694
|
|
|
56
27
|
acc40 += t44
|
|
57
28
|
end
|
|
58
29
|
t45 = acc40
|
|
59
|
-
t15 = t45 *
|
|
30
|
+
t15 = t45 * 0.15
|
|
60
31
|
out << t15
|
|
61
32
|
end
|
|
62
33
|
out
|
|
63
34
|
end
|
|
64
35
|
|
|
65
|
-
def _manager_count(input
|
|
36
|
+
def self._manager_count(input)
|
|
66
37
|
out = []
|
|
67
38
|
t16 = input["departments"] || input[:departments]
|
|
68
|
-
t24 = "manager"
|
|
69
|
-
t26 = 1
|
|
70
|
-
t27 = 0
|
|
71
39
|
t16.each_with_index do |departments_el_17, departments_i_18|
|
|
72
40
|
acc_19 = 0
|
|
73
41
|
t20 = departments_el_17["employees"] || departments_el_17[:employees]
|
|
74
42
|
t20.each_with_index do |employees_el_21, employees_i_22|
|
|
75
43
|
t23 = employees_el_21["role"] || employees_el_21[:role]
|
|
76
|
-
t25 = t23 ==
|
|
77
|
-
t28 = t25 ?
|
|
44
|
+
t25 = t23 == "manager"
|
|
45
|
+
t28 = t25 ? 1 : 0
|
|
78
46
|
acc_19 += t28
|
|
79
47
|
end
|
|
80
48
|
t29 = acc_19
|
|
@@ -83,13 +51,9 @@ module Kumi::Compiled::KUMI_4323eb829f35622b045d2fd46bf95a877a7a4caa6feea5cfb694
|
|
|
83
51
|
out
|
|
84
52
|
end
|
|
85
53
|
|
|
86
|
-
def _department_summary(input
|
|
54
|
+
def self._department_summary(input)
|
|
87
55
|
out = []
|
|
88
56
|
t30 = input["departments"] || input[:departments]
|
|
89
|
-
t56 = 0.15
|
|
90
|
-
t73 = "manager"
|
|
91
|
-
t75 = 1
|
|
92
|
-
t76 = 0
|
|
93
57
|
t30.each_with_index do |departments_el_31, departments_i_32|
|
|
94
58
|
t33 = departments_el_31["name"] || departments_el_31[:name]
|
|
95
59
|
acc48 = 0
|
|
@@ -101,14 +65,14 @@ module Kumi::Compiled::KUMI_4323eb829f35622b045d2fd46bf95a877a7a4caa6feea5cfb694
|
|
|
101
65
|
acc48 += t52
|
|
102
66
|
acc60 += t52
|
|
103
67
|
t72 = t50["role"] || t50[:role]
|
|
104
|
-
t74 = t72 ==
|
|
105
|
-
t77 = t74 ?
|
|
68
|
+
t74 = t72 == "manager"
|
|
69
|
+
t77 = t74 ? 1 : 0
|
|
106
70
|
acc68 += t77
|
|
107
71
|
end
|
|
108
72
|
t53 = acc48
|
|
109
73
|
t65 = acc60
|
|
110
74
|
t78 = acc68
|
|
111
|
-
t57 = t65 *
|
|
75
|
+
t57 = t65 * 0.15
|
|
112
76
|
t37 = {
|
|
113
77
|
"name" => t33,
|
|
114
78
|
"payroll" => t53,
|
|
@@ -23,8 +23,7 @@
|
|
|
23
23
|
%t25 = load_input "y" :: integer
|
|
24
24
|
%t27 = call core.mul:numeric(%t25, %t25) :: integer
|
|
25
25
|
%t21 = call core.add(%t24, %t27) :: integer
|
|
26
|
-
%
|
|
27
|
-
%t12 = call core.pow(%t21, %t11) :: float
|
|
26
|
+
%t12 = call core.pow(%t21, 0.5) :: float
|
|
28
27
|
yield %t12
|
|
29
28
|
)
|
|
30
29
|
)
|