diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/sample/npc_test_chekweight.txt | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/doc/sample/npc_test_chekweight.txt b/doc/sample/npc_test_chekweight.txt new file mode 100644 index 000000000..1f4d1d2d8 --- /dev/null +++ b/doc/sample/npc_test_chekweight.txt @@ -0,0 +1,164 @@ +//===== rAthena Script ======================================= +//= Sample: ChekWeight +//===== By: ================================================== +//= rAthena Dev Team +//===== Current Version: ===================================== +//= 20121113 +//===== Description: ========================================= +//= Demonstrates ChekWeight commands. +//============================================================ + +new_1-1,56,106,5 script ChkSpace 763,{ + +function ChkResult; +function FinalReport; + +L_RESET: + resetlvl(1); + getinventorylist; + for(set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){ + delitem(@inventorylist_id[.@i],@inventorylist_amount[.@i]); //clear inventory + } + + +L_TEST1: //basic backward chk + .@testid = 0; + .@succes = 0; + .@ret = checkweight(512,10); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + .@ret = checkweight("Apple",10); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + .@ret = checkweight(6320,33000); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure too many item amount item weight=0 + .@ret = checkweight("Premium_Reset_Stone",33000); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure too many item amount + .@ret = checkweight(717,500); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success weight based on max weight=2030 + .@ret = checkweight(717,1000); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure weight based on max weight=2030 + .@ret = checkweight(2794,100); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + .@ret = checkweight(2794,101); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure (with MAX_INVENTORY = 100) + .@ret = checkweight(-1,1); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide item id + .@ret = checkweight(512,0); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide amount + + debugmes "End backward test"; + FinalReport(.@testid,.@succes); + + +L_TEST2: //update using list test + .@testid = 0; + .@succes = 0; + + .@ret = checkweight(512,10,513,10); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + .@ret = checkweight("Apple",10,"Banana",10); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + .@ret = checkweight(512,80,513,33000); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure + .@ret = checkweight("Apple",80,"Banana",33000); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure too many item amount + .@ret = checkweight("Apple",10,"Banana",21,512); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalid nb of args + .@ret = checkweight(717,500,716,100); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be succes weight 1800/2030 + .@ret = checkweight(717,500,716,500); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure weight 3000/2030 + .@ret = checkweight(2794,95,2795,5); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + .@ret = checkweight(2794,95,2795,10); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure (with MAX_INVENTORY = 100) + .@ret = checkweight(512,1,-1,1); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide item id + .@ret = checkweight(512,1,513,0); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure invalide amount + .@ret = checkweight(6320,31000,6320,2000); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure overamount inventory + .@ret = checkweight(512,1,513,1,514,1,515,1); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be sucess + + debugmes "End update by list tests"; + FinalReport(.@testid,.@succes); + +L_TEST3: //update using array tests + .@testid = 0; + .@succes = 0; + + setarray .@item[0], 512,513,514,515; + setarray .@count[0], 1,5,9,12; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be sucess + cleararray .@item[0], 0, 4; + cleararray .@count[0], 0, 4; + setarray .@item[0], 512,513,514,515; + setarray .@count[0], 1,5,-1,12; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, invalide amout + cleararray .@item[0], 0, 4; + cleararray .@count[0], 0, 4; + setarray .@item[0], 512,513,514,-1; + setarray .@count[0], 1,5,15,12; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, invalide id + cleararray .@item[0], 0, 4; + cleararray .@count[0], 0, 4; + setarray .@item[0], 717,715,716,714; + setarray .@count[0], 300,300,300,300; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, total by weight + cleararray .@item[0], 0, 4; + cleararray .@count[0], 0, 4; + setarray .@item[0], 6320,6320; + setarray .@count[0], 31000,2000; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, total by weight + cleararray .@item[0], 0, 2; + cleararray .@count[0], 0, 2; + setarray .@item[0], 2794,2795; + setarray .@count[0], 95,5; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,1,.@ret); //should be success + setarray .@count[0], 95,10; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure overamount item + cleararray .@item[0], 0, 2; + cleararray .@count[0], 0, 2; + setarray .@item[0], 6320,6320,512; + setarray .@count[0], 1,3; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, size mistmatch + cleararray .@item[0], 0, 3; + cleararray .@count[0], 0, 2; + setarray .@item[0], 6320,6320; + setarray .@count[0], 1,3,5; + .@ret = checkweight2(.@item,.@count); + set .@succes,.@succes+ChkResult(.@testid++,0,.@ret); //should be failure, size mistmatch + + + debugmes "End update by array tests"; + FinalReport(.@testid,.@succes); + +L_FINAL: + end; + + + function ChkResult { + .@tid = getarg(0); + .@expected = getarg(1); + .@ret = getarg(2); + .@sucess = (.@ret==.@expected); + debugmes "Test "+.@tid+" = "+(.@sucess?"Sucess":"Fail"); + return .@sucess; + } + + function FinalReport { + .@tdone = getarg(0); + .@succes = getarg(1); + debugmes "Results = Pass : "+.@succes+"/"+.@tdone+" Fails : "+(.@tdone-.@succes)+"/"+.@tdone; + if(.@succes != .@tdone) { debugmes "Some failure as occured, enable chkresult print to found out"; } + return; + } +} |