// Evol scripts. // Author: // 4144 // Description: // script tests function script test1function { .var = .walkmask; if (.var != 3) mes "Error: testing test1 npc variables from function."; .var = getvariableofnpc(.walkmask, "test1"); if (.var != 3) mes "Error: testing test1 npc variables from function."; .var = getvariableofnpc(.walkmask, "test2"); if (.var != 4) mes "Error: testing test2 npc variables from function."; return; } test,10,5,0 script test1 NPC_HAT_BOX,{ function assert { if (getarg(0)) { .stats[1]++; // comment out the next line for less verbosity mesf("Success: %s.", getarg(1)); } else { mesf("##BError##b: %s.", getarg(1)); } return .stats[0]++; } function test_npc_vars { mes("##2Testing NPC variables...##0"); .var = .walkmask; assert(.var == 3, "test1 npc variales"); .var = getvariableofnpc(.walkmask, "test1"); assert(.var == 3, "test1 npc variables from function"); .var = getvariableofnpc(.walkmask, "test2"); assert(.var == 4, "test2 npc variables"); test1function(); next(); } function test_quest_vars { mes("##2Testing quest variables...##0"); .@time = 1000; setq(Test_testing1, 1, 2, 3, .@time); assert(getq(Test_testing1) == 1, "getq1 = 1"); assert(getq2(Test_testing1) == 2, "getq2 = 2"); assert(getq3(Test_testing1) == 3, "getq3 = 3"); assert(getqtime(Test_testing1) == .@time, "getqtime = 1000"); next(); .@time = 2000; setq(Test_testing1, 2, 3, 4, .@time); assert(getq(Test_testing1) == 2, "getq1 = 2"); assert(getq2(Test_testing1) == 3, "getq2 = 3"); assert(getq3(Test_testing1) == 4, "getq3 = 4"); assert(getqtime(Test_testing1) == .@time, "getqtime = 2000"); next(); setq(Test_testing1, 0); } function test_translation_old { mes("##2Testing old translation system without gender...##0"); assert(l("test @@", "") == "test ", "\"test @@\", \"\""); assert(l("test @@", "foo") == "test foo", "\"test @@\", \"foo\""); assert(l("@@", "") == "", "\"@@\", \"\""); assert(l("@@") == "@@", "\"@@\""); assert(l("@@ @@ @@", "this", "is", "test") == "this is test", "\"@@ @@ @@\", \"this\", \"is\", \"test\""); assert(l("data @@ @@ @@ data", "this", "is", "test") == "data this is test data", "\"data @@ @@ @@ data\", \"this\", \"is\", \"test\""); next(); /* mesf("##2Testing old translation system as %s gender...##0", g("female", "male")); if (Sex == 1) assert(lg("test1 @@", "test2 @@", "line") == "test2 line#1", "\"test1 @@\", \"test2 @@\", \"line\""); else if (Sex == 0) assert(lg("test1 @@", "test2 @@", "line") == "test1 line#0", "\"test1 @@\", \"test2 @@\", \"line\""); */ next(); } function test_translation_new { mes("##2Testing new translation system without gender...##0"); assert(l("") == "", "\"\""); assert(l("test") == "test", "\"test\""); assert(l("test %s", "") == "test ", "\"test %s\", \"\""); assert(l("test %s", "foo") == "test foo", "\"test %s\", \"foo\""); assert(l("%s", "") == "", "\"%s\", \"\""); assert(l("%s") == "%s", "\"%s\""); assert(l("%%") == "%%", "\"%##0%\""); // XXX: %% is reserved for emotes in manaplus, so we escape it with color assert(l("%d%%", 6) == "6%", "\"%d%##0%\", 6"); // XXX: %% is reserved for emotes in manaplus, so we escape it with color assert(l("%s %s %s", "this", "is", "test") == "this is test", "\"%s %s %s\", \"this\", \"is\", \"test\""); assert(l("%s %d %s", "foo", 69, "bar") == "foo 69 bar", "\"%s %d %s\", \"foo\", 69, \"bar\""); assert(l("data %s %s %s data", "this", "is", "test") == "data this is test data", "\"data %s %s %s data\", \"this\", \"is\", \"test\""); next(); /* mesf("##2Testing new translation system as %s gender...##0", g("female", "male")); if (Sex == 1) { assert(lg("test") == "test#1", "\"test\""); assert(lg("test1", "test2") == "test2#1", "\"test1\", \"test2\""); assert(lg("test1 %s", "test2 %s", "line") == "test2 line#1", "\"test1 %s\", \"test2 %s\", \"line\""); } else if (Sex == 0) { assert(lg("test") == "test#0", "\"test\""); assert(lg("test1", "test2") == "test1#0", "\"test1\", \"test2\""); assert(lg("test1 %s", "test2 %s", "line") == "test1 line#0", "\"test1 %s\", \"test2 %s\", \"line\""); } */ next(); mes("##2Testing advanced translation...##0"); assert(l("foo %2$s bar %1$s baz", "qux", "quux") == "foo quux bar qux baz", "\"foo %2$s bar %1$s baz\", \"qux\", \"quux\""); assert(l("%5d", 6) == " 6", "\"%5d\", 6"); assert(l("%5d", -6) == " -6", "\"%5d\", -6"); assert(l("%+5d", 6) == " +6", "\"%+5d\", 6"); assert(l("%+5d", -6) == " -6", "\"%+5d\", -6"); assert(l("%-5d", 6) == "6 ", "\"%-5d\", 6"); assert(l("%-5d", -6) == "-6 ", "\"%-5d\", -6"); assert(l("% 5d", 6) == " 6", "\"% 5d\", 6"); assert(l("% 5d", -6) == " -6", "\"% 5d\", -6"); assert(l("%05d", 6) == "00006", "\"%05d\", 6"); assert(l("%05d", -6) == "-0006", "\"%05d\", -6"); assert(l("%10s", "test") == " test", "\"%10s\", \"test\""); assert(l("% 10s", "test") == " test", "\"% 10s\", \"test\""); assert(l("%-10s", "test") == "test ", "\"%-10s\", \"test\""); next(); } do { mes("Please select a test:"); select( "NPC variables", "quest variables", "translation (old)", "translation (new)", "everything"); setarray(.stats[0], 0, 0); // make sure we have a clean state clear(); switch (@menu) { case 1: test_npc_vars(); break; case 2: test_quest_vars(); break; case 3: test_translation_old(); break; case 4: test_translation_new(); break; default: test_translation_old(); test_translation_new(); test_npc_vars(); test_quest_vars(); } mesf("##BTests complete. [%02d/%02d]", .stats[1], .stats[0]); next(); } while (true); close; OnInit: .walkmask = 3; end; }