1#!./perl 2# 3# language.t - tests for Locale::Language 4# 5 6BEGIN { 7 chdir 't' if -d 't'; 8 @INC = '../lib'; 9} 10 11use Locale::Language; 12 13no utf8; # we contain Latin-1 14 15#----------------------------------------------------------------------- 16# This is an array of tests. Each test is eval'd as an expression. 17# If it evaluates to FALSE, then "not ok N" is printed for the test, 18# otherwise "ok N". 19#----------------------------------------------------------------------- 20@TESTS = 21( 22 #================================================ 23 # TESTS FOR code2language 24 #================================================ 25 26 #---- selection of examples which should all result in undef ----------- 27 '!defined code2language()', # no argument => undef returned 28 '!defined code2language(undef)', # undef arg => undef returned 29 '!defined code2language("zz")', # illegal code => undef 30 '!defined code2language("jp")', # ja for lang, jp for country 31 32 #---- test recent changes ---------------------------------------------- 33 'code2language("ae") eq "Avestan"', 34 'code2language("bs") eq "Bosnian"', 35 'code2language("ch") eq "Chamorro"', 36 'code2language("ce") eq "Chechen"', 37 'code2language("cu") eq "Church Slavic"', 38 'code2language("cv") eq "Chuvash"', 39 'code2language("hz") eq "Herero"', 40 'code2language("ho") eq "Hiri Motu"', 41 'code2language("ki") eq "Kikuyu"', 42 'code2language("kj") eq "Kuanyama"', 43 'code2language("kv") eq "Komi"', 44 'code2language("mh") eq "Marshall"', 45 'code2language("nv") eq "Navajo"', 46 'code2language("nr") eq "Ndebele, South"', 47 'code2language("nd") eq "Ndebele, North"', 48 'code2language("ng") eq "Ndonga"', 49 'code2language("nn") eq "Norwegian Nynorsk"', 50 'code2language("nb") eq "Norwegian Bokmal"', 51 'code2language("ny") eq "Chichewa; Nyanja"', 52 'code2language("oc") eq "Occitan (post 1500)"', 53 'code2language("os") eq "Ossetian; Ossetic"', 54 'code2language("pi") eq "Pali"', 55 '!defined code2language("sh")', # Serbo-Croatian withdrawn 56 'code2language("se") eq "Sami"', 57 'code2language("sc") eq "Sardinian"', 58 'code2language("kw") eq "Cornish"', 59 'code2language("gv") eq "Manx"', 60 'code2language("lb") eq "Letzeburgesch"', 61 'code2language("he") eq "Hebrew"', 62 '!defined code2language("iw")', # Hebrew withdrawn 63 'code2language("id") eq "Indonesian"', 64 '!defined code2language("in")', # Indonesian withdrawn 65 'code2language("iu") eq "Inuktitut"', 66 'code2language("ug") eq "Uighur"', 67 '!defined code2language("ji")', # Yiddish withdrawn 68 'code2language("yi") eq "Yiddish"', 69 'code2language("za") eq "Zhuang"', 70 71 #---- some successful examples ----------------------------------------- 72 'code2language("DA") eq "Danish"', 73 'code2language("eo") eq "Esperanto"', 74 'code2language("fi") eq "Finnish"', 75 'code2language("en") eq "English"', 76 'code2language("aa") eq "Afar"', # first in DATA segment 77 'code2language("zu") eq "Zulu"', # last in DATA segment 78 79 #================================================ 80 # TESTS FOR language2code 81 #================================================ 82 83 #---- selection of examples which should all result in undef ----------- 84 '!defined language2code()', # no argument => undef returned 85 '!defined language2code(undef)', # undef arg => undef returned 86 '!defined language2code("Banana")', # illegal lang name => undef 87 88 #---- some successful examples ----------------------------------------- 89 'language2code("Japanese") eq "ja"', 90 'language2code("japanese") eq "ja"', 91 'language2code("japanese") ne "jp"', 92 'language2code("French") eq "fr"', 93 'language2code("Greek") eq "el"', 94 'language2code("english") eq "en"', 95 'language2code("ESTONIAN") eq "et"', 96 'language2code("Afar") eq "aa"', # first in DATA segment 97 'language2code("Zulu") eq "zu"', # last in DATA segment 98); 99 100print "1..", int(@TESTS), "\n"; 101 102$testid = 1; 103foreach $test (@TESTS) 104{ 105 eval "print (($test) ? \"ok $testid\\n\" : \"not ok $testid\\n\" )"; 106 print "not ok $testid\n" if $@; 107 ++$testid; 108} 109 110exit 0; 111