Snapshot: new training tasks (balanced generation), docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
67
tasks_gen/train/G1914/reference/rope_checker.clas.abap
Normal file
67
tasks_gen/train/G1914/reference/rope_checker.clas.abap
Normal file
@@ -0,0 +1,67 @@
|
||||
CLASS {{p}}rope_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_rope_check.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_limit,
|
||||
ticket TYPE {{p}}if_rope_check=>ty_ticket,
|
||||
min_age TYPE i,
|
||||
min_hours TYPE i,
|
||||
max_height TYPE i,
|
||||
END OF ty_limit,
|
||||
tt_limit TYPE HASHED TABLE OF ty_limit WITH UNIQUE KEY ticket.
|
||||
|
||||
METHODS normalize_ticket
|
||||
IMPORTING iv_ticket TYPE {{p}}if_rope_check=>ty_ticket
|
||||
RETURNING VALUE(rv_ticket) TYPE {{p}}if_rope_check=>ty_ticket.
|
||||
|
||||
METHODS limits
|
||||
RETURNING VALUE(rt_limit) TYPE tt_limit.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}rope_checker IMPLEMENTATION.
|
||||
METHOD {{p}}if_rope_check~check.
|
||||
DATA(lv_ticket) = normalize_ticket( iv_ticket ).
|
||||
IF lv_ticket IS INITIAL.
|
||||
rv_reason = {{p}}if_rope_check=>c_reason-empty.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lt_limit) = limits( ).
|
||||
ASSIGN lt_limit[ ticket = lv_ticket ] TO FIELD-SYMBOL(<ls_limit>).
|
||||
IF sy-subrc <> 0.
|
||||
rv_reason = {{p}}if_rope_check=>c_reason-ticket.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF iv_age < <ls_limit>-min_age.
|
||||
rv_reason = {{p}}if_rope_check=>c_reason-age.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF iv_logged_hours < <ls_limit>-min_hours.
|
||||
rv_reason = {{p}}if_rope_check=>c_reason-hours.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF iv_height_m > <ls_limit>-max_height.
|
||||
rv_reason = {{p}}if_rope_check=>c_reason-height.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
rv_reason = {{p}}if_rope_check=>c_reason-ok.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD normalize_ticket.
|
||||
rv_ticket = to_upper( replace( val = iv_ticket sub = ` ` with = `` occ = 0 ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD limits.
|
||||
rt_limit = VALUE #(
|
||||
( ticket = {{p}}if_rope_check=>c_ticket-level_1 min_age = 18 min_hours = 0 max_height = 30 )
|
||||
( ticket = {{p}}if_rope_check=>c_ticket-level_2 min_age = 18 min_hours = 500 max_height = 60 )
|
||||
( ticket = {{p}}if_rope_check=>c_ticket-level_3 min_age = 21 min_hours = 1000 max_height = 120 ) ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user