// this script was compiled with wurst 1.8.1.0-jenkins-Wurst-1366 globals integer array F_nextFree integer F_firstFree=0 integer F_maxIndex=0 integer array F_typeId integer array Cell_nextFree integer Cell_firstFree=0 integer Cell_maxIndex=0 integer array Cell_typeId integer array Cell_elem endglobals native println takes string s returns nothing native testSuccess takes nothing returns nothing function initGlobals takes nothing returns nothing endfunction function error takes string msg returns nothing call BJDebugMsg(msg + "\n" + "") endfunction function dispatch_F_test_F_apply takes integer this, integer a returns integer local integer test_F_apply_result local integer a_1 local real r local integer i if F_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling F.apply") else call error("Called F.apply on invalid object.") endif endif set a_1 = a set i = a_1 set r = i * 10. set test_F_apply_result = R2I(r * 1000.) return test_F_apply_result endfunction function new_Cell takes integer t returns integer local integer this local integer this_1 local integer this_2 local integer t_1 if Cell_firstFree == 0 then if Cell_maxIndex < 32768 then set Cell_maxIndex = Cell_maxIndex + 1 set this_1 = Cell_maxIndex set Cell_typeId[this_1] = 1 else call error("Out of memory: Could not create Cell.") set this_1 = 0 endif else set Cell_firstFree = Cell_firstFree - 1 set this_1 = Cell_nextFree[Cell_firstFree] set Cell_typeId[this_1] = 1 endif set this = this_1 set this_2 = this set t_1 = t set Cell_elem[this_2] = t_1 return this endfunction function init_test takes nothing returns nothing local integer a = new_Cell(5) local integer temp = a local integer b local integer clVar local integer this local integer this_1 local integer f local integer test_Cell_map_result local integer this_2 local integer f_1 local real this_3 local real expected local integer i local integer this_4 local integer test_Cell_get_result local integer this_5 if F_firstFree == 0 then if F_maxIndex < 32768 then set F_maxIndex = F_maxIndex + 1 set this = F_maxIndex set F_typeId[this] = 3 else call error("Out of memory: Could not create F_map_test.") set this = 0 endif else set F_firstFree = F_firstFree - 1 set this = F_nextFree[F_firstFree] set F_typeId[this] = 3 endif set clVar = this set this_1 = temp set f = clVar if Cell_typeId[this_1] == 0 then if this_1 == 0 then call error("Nullpointer exception when calling Cell.map") else call error("Called Cell.map on invalid object.") endif endif set this_2 = this_1 set f_1 = f set test_Cell_map_result = new_Cell(dispatch_F_test_F_apply(f_1, Cell_elem[this_2])) set b = test_Cell_map_result set this_4 = b if Cell_typeId[this_4] == 0 then if this_4 == 0 then call error("Nullpointer exception when calling Cell.get") else call error("Called Cell.get on invalid object.") endif endif set this_5 = this_4 set test_Cell_get_result = Cell_elem[this_5] set i = test_Cell_get_result set this_3 = i / 1000. set expected = 50. if this_3 == expected then call testSuccess() else call println(R2S(this_3)) endif endfunction function main takes nothing returns nothing call initGlobals() call init_test() endfunction function config takes nothing returns nothing endfunction