Snapshot: new training tasks (balanced generation), docs

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 22:08:59 +02:00
parent eb13453097
commit 6984fc7917
572 changed files with 30024 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Milling charge'
define view entity {{P}}I_MILL_CHARGE
with parameters
p_min_charge : abap.dec( 15, 2 )
as select from {{p}}milllot as lot
inner join {{p}}milljob as job on job.job_id = lot.job_id
{
key job.job_id as job_id,
job.farmer as farmer,
count( * ) as lot_count,
sum( lot.sacks ) as sack_count,
sum( lot.sacks * lot.mill_rate ) as mill_amount,
case when sum( lot.sacks * lot.mill_rate ) < $parameters.p_min_charge
then $parameters.p_min_charge
else sum( lot.sacks * lot.mill_rate )
end as charge_amount
}
group by
job.job_id,
job.farmer

View File

@@ -0,0 +1,56 @@
CLASS {{p}}mill_charge_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
TYPES ty_min TYPE p LENGTH 8 DECIMALS 2.
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS charge_of_one_job FOR TESTING.
METHODS min_charge_drives_charge FOR TESTING.
ENDCLASS.
CLASS {{p}}mill_charge_test IMPLEMENTATION.
METHOD class_setup.
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_MILL_CHARGE' ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
DATA lt_job TYPE STANDARD TABLE OF {{p}}milljob WITH EMPTY KEY.
DATA lt_lot TYPE STANDARD TABLE OF {{p}}milllot WITH EMPTY KEY.
go_env->clear_doubles( ).
lt_job = VALUE #( ( job_id = 'A' farmer = 'C1' delivery_date = '20251101' ) ).
lt_lot = VALUE #(
( job_id = 'A' lot_no = 1 grain = 'WHEAT' sacks = 2 mill_rate = '30.00' )
( job_id = 'A' lot_no = 2 grain = 'RYE' sacks = 1 mill_rate = '20.00' ) ).
go_env->insert_test_data( lt_job ).
go_env->insert_test_data( lt_lot ).
ENDMETHOD.
METHOD charge_of_one_job.
DATA lv_min TYPE ty_min.
lv_min = '25.00'.
SELECT SINGLE mill_amount, charge_amount FROM {{p}}i_mill_charge( p_min_charge = @lv_min )
WHERE job_id = 'A' INTO @DATA(ls_charge).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '80.00' )
act = CONV decfloat34( ls_charge-mill_amount ) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '80.00' )
act = CONV decfloat34( ls_charge-charge_amount ) ).
ENDMETHOD.
METHOD min_charge_drives_charge.
DATA lv_min TYPE ty_min.
lv_min = '100.00'.
SELECT SINGLE charge_amount FROM {{p}}i_mill_charge( p_min_charge = @lv_min )
WHERE job_id = 'A' INTO @DATA(lv_charge).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '100.00' )
act = CONV decfloat34( lv_charge ) ).
ENDMETHOD.
ENDCLASS.