summaryrefslogblamecommitdiff
path: root/npc/test/test1.txt
blob: 9fefe307c0a7b2c6bcd4ec222341a4a051728bf4 (plain) (tree)
1
2
3
4
5
                
          

               
                  















                                                                











                                                           









                                                               
     

















                                                                     
     
 









                                                                                                                                                
          




                                                                                                                 
          
               
     















                                                                                                                                                
          









                                                                                                                 
          

















                                                                                                                                    

     



























                                                                     





                  
// 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;
}